检测.vimrc中的vrapper

时间:2014-10-31 13:11:16

标签: vim eclipse-plugin

在我的.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完全停止工作。在我的主目录中,我有一个.vrapperrc文件,它只是一个指向我.vimrc文件的symobolic链接。因此,为vim / vrapper加载的vim设置是相同的。

有没有办法在我的.vimrc中我可以检测到为vrapper而不是默认(终端)vim加载了设置。这样我想为vrapper禁用这些设置,并在命令行使用vim时加载它们。也许有一种不同的智能方法可以解决这个问题。当然我可以创建两个.vimrc文件,一个用于默认vim,一个用于vrapper,但是这样我需要维护两个我想要阻止的文件。

3 个答案:

答案 0 :(得分:2)

我遇到了类似的问题,其中Vrapper立即执行了我的函数内容,因为它不明白它们是什么。

我通过用

包装vim唯一代码解决了这个问题
if has("eval")
    " vim only code
endif

导致Vrapper忽略它。

答案 1 :(得分:0)

正如@romainl所指出的,Vrapper只了解一组有限的Vim命令和功能。肯定不支持函数定义,三元组和<expr>


如果您愿意拆分rc文件,可以使用source命令至少重用其中一个。

例如,将这些基本设置放在.vrapperrc

set ignorecase
set hlsearch

然后,您可以在.vimrc

中执行此操作
" Load common settings for Vim / Vrapper
source .vrapperrc
" ... Other Vim-specific settings

请注意,Vrapper也有一个source命令,因此理论上你可以使用&#34; common&#34;两者之间共享的设置:

示例.vrapperrc

set novisualmouse
source .vimcommonrc

示例.vimrc

" Use j/k to naviage the word completion popup menu
inoremap <expr> j pumvisible() ? "\<C-N>" : "j"
inoremap <expr> k pumvisible() ? "\<C-P>" : "k"
source .vimcommonrc

常见设置:

set hlsearch
set ignorecase

这是你的选择。

答案 2 :(得分:-1)

您认为它如何运作?

你的~/.vimrc不是一个可以自己做出决定的有感觉的人:它需要由一个理解它的程序来源......并且该程序是Vim。

Vrapper仅支持a subset of Vim's vocabulary,因此期望它像完全是不合理的。可能导致您检测的检测的主要缺失功能是vimscript:由于Vrapper不支持它,因此您无法使用if-else-endif构造!

因为这两个程序支持大量不同的选项和命令,所以我担心你必须管理两个单独的文件。

您是否尝试过Vrapper :source命令?