在我的.vimrc中,我有以下内容:
" Use j/k to navigate the word completion popup menu
inoremap <expr> j pumvisible() ? "\<C-N>" : "j"
inoremap <expr> k pumvisible() ? "\<C-P>" : "k"
当在终端中使用vim时,这是完美的,但是这与vrapper(eclipse vim插件)不兼容。当这些设置在我的. vimrc中时,Vrapper完全停止工作。在我的home目录中,我有一个.vrapperrc
文件,它只是指向我的.vimrc
文件的符号链接。因此,为vim / vrapper加载的vim设置是相等的。
有没有办法在我的.vimrc中检测到vrapper的设置是加载的而不是默认的(终端)vim。这样我就可以禁用vrapper的这些设置,而在命令行中使用vim时只加载它们。也许有一种不同的聪明方法可以解决这个问题。当然,我可以创建两个.vimrc文件,一个用于默认的vim,一个用于vrapper,然而,这样我就需要维护两个文件,我想防止。
4条答案
按热度按时间zxlwwiss1#
我遇到过一个类似的问题,Vrapper立即执行了我的函数的内容,因为它不理解它们是什么。
我通过将vim代码 Package 为
这使得Vrapper忽略了它。
bqjvbblv2#
正如@romainl所指出的,Vrapper只理解有限的Vim命令和特性,函数定义、三元组和
<expr>
是绝对不支持的。如果您希望拆分rc文件,可以使用
source
命令至少重用其中一个。例如,在
.vrapperrc
中设置以下基本设置:然后,您可以在
.vimrc
中执行此操作:请注意,Vrapper也有一个
source
命令,所以理论上你可以有3个rc文件,它们之间共享“公共”设置:示例
.vrapperrc
:示例
.vimrc
和常用设置:
这是你的选择。
frebpwbc3#
我不认为你可以 * 检测Vrapper*,但你可以写一个命令,真实的的Vim将处理和Vrapper将忽略。
示例:Map
<KMinus>
:如果Vrapper运行它,它会崩溃。让它忽略它。有很多方法:
第一个
如果其他命令不起作用,还有一个更“激进”的版本。它对多个命令很有用:
您甚至可以添加一条
finish
语句,Vim会将其视为“我应该停止阅读此文件”,Vrapper可能会忽略并继续执行该文件,这使得它非常适合放在Vrapper专用命令之前:vsdwdz234#
你觉得会怎么样?
你的
~/.vimrc
不是一个有知觉的存在,可以自己做决定:它需要由一个理解它的程序来获取...那个程序就是Vim。Vrapper只支持a subset of Vim's vocabulary,因此期望它的行为 * 完全 * 像Vim是不太合理的。由于Vrapper不支持
if-else-endif
构造,因此您不能使用它!因为这两个程序支持的选项和命令集大不相同,所以恐怕您将不得不管理两个单独的文件。
您是否尝试过Vrapper的
:source
命令?