如何确保密钥的映射不会改变?

时间:2012-09-07 09:52:01

标签: vim supertab

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

在我的~/.vimrc/usr/share/vim/vimrc文件中,没有Tab键的映射。后面的文件包含debian.vim(并尝试使用/etc/vim/vimrc.local,但这不存在)但是也没有任何tab选项或任何对supertab的引用。

: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,但它不起作用,因为在读取 ~/.vimrc之后似乎正在加载。 / p>

我的问题是,如何禁用supertab,或者确保ViM不允许任何人将 TAB 映射到其他任何地方?

2 个答案:

答案 0 :(得分:3)

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

如果它不存在,它可能已安装在/usr/share/vim/vim7x/中,这是非常拥挤的,不应该以任何方式触及:祝你好运。

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

答案 1 :(得分:2)

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

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

如果您只想插入文字 tab 字符,supertab可以通过默认情况下将文字标签映射到 ctrl + 标签来实现不幸的是在终端不起作用)。可以使用以下内容进行自定义:

g:SuperTabMappingTabLiteral='<C-`>'

最后,您总是可以通过在插入模式下使用 ctrl-v 添加映射来转义映射。

有关详细信息,请参阅:h supertab-forwardbackward。 (如果您尚未构建supertab个文档)

,则可能无效