0

我在这台计算机(ubuntu)上TAB映射(我找不到)到自动完成的位置。我搜索了一下,似乎这是由 supertab 完成的,虽然我找不到如何禁用它,也没有找到它的文件。

在我的~/.vimrc/usr/share/vim/vimrc文件中,没有制表键的映射。后面的文件包括debian.vim(并尝试使用/etc/vim/vimrc.local,但不存在),但也没有任何选项卡映射或对超级选项卡的任何引用。

的输出:map!是这样的:

i  <S-Tab>     * <C-R>=BackwardsSnippet()<CR>
i  <Plug>SuperTabBackward & <C-R>=<SNR>13_SuperTab('p')<CR>
i  <Plug>SuperTabForward & <C-R>=<SNR>13_SuperTab('n')<CR>
i  <C-Tab>     * <Tab>
i  <Tab>       * <C-R>=TriggerSnippet()<CR>
i  <CR>        * <C-R>=<SNR>13_SelectCompletion(1)<CR>
i  <C-N>         <Plug>SuperTabForward
i  <C-P>         <Plug>SuperTabBackward
i  <C-R><Tab>  * <C-R>=ShowAvailableSnips()<CR>
i  <C-X>         <C-R>=<SNR>13_ManualCompletionEnter()<CR>

这表明 supertab 确实在映射这些键。

我尝试放入nomap! <TAB>我的~/.vimrc,但它不起作用,因为似乎在读取 supertab ~/.vimrc正在加载。

我的问题是,我怎样才能禁用 supertab,或者确保 ViM 不允许任何人映射TAB到其他任何东西?

4

2 回答 2

3

Supertab 是一个插件。因此,它应该安装在~/.vim/. 有很多方法可以安装插件(默认、病原体、vundle 等)。查看~/.vim/bundle(如果您使用 Pathogen)或在~/.vim/plugin.

如果它不在那里,它可能已经安装在/usr/share/vim/vim7x/非常拥挤并且不应该以任何方式触摸的地方:祝你好运。

无论如何,您可以:verbose map!查看映射的设置位置(因此,如果您想删除插件,则可以查看插件的安装位置),或者您可以简单地将 Supertab 配置为不使用<tab>. 见:help supertab

于 2012-09-07T10:49:18.267 回答
2

如果您不想完全摆脱,supertab您可以使用类似(在您的~/.vimrc)中重新映射默认键绑定:

let g:SuperTabMappingForward = '<c-space>'
let g:SuperTabMappingBackward = '<s-c-space>'

如果您只想插入文字tab字符,supertab 通过默认将文字制表符映射到ctrl+来简化操作tab(不幸的是,这在终端中不起作用)。它可以通过使用类似的东西来定制:

g:SuperTabMappingTabLiteral='<C-`>'

最后,您始终可以通过ctrl-v在插入模式下添加映射来逃避映射。

有关更多信息,请参阅:h supertab-forwardbackward。(如果您还没有构建supertab文档,可能无法正常工作)

于 2012-09-18T16:26:06.050 回答