当我在正常模式下使用vim时,我经常意外按下TAB键,TAB键默认与Ctrl-I做同样的事情。我要让TAB键做什么,所以我把这个线在vimrc文件:如何在VIM中取消映射TAB并且不使Ctrl-I无效
nmap <TAB> :echo<CR>
因此,TAB键会做什么,但是这也取得了关键的Ctrl键,我什么都不做。 那么,如何让TAB什么也不做,Ctrl-I和vim(正常模式)一样工作得很好?
当我在正常模式下使用vim时,我经常意外按下TAB键,TAB键默认与Ctrl-I做同样的事情。我要让TAB键做什么,所以我把这个线在vimrc文件:如何在VIM中取消映射TAB并且不使Ctrl-I无效
nmap <TAB> :echo<CR>
因此,TAB键会做什么,但是这也取得了关键的Ctrl键,我什么都不做。 那么,如何让TAB什么也不做,Ctrl-I和vim(正常模式)一样工作得很好?
由于键盘输入在内部处理的方式,现在这种情况通常不可能,即使在GVIM中也是如此。一些组合键,像按Ctrl +非字母不能映射,并按Ctrl +信与按Ctrl +移+信无法区分。 (除非你的终端发送的出与众不同的的termcap代码,其中大部分没有。)这也适用于<Tab>
/<C-I>
,<CR>
/<C-M>
等,这是一个已知的痛点,并在vim_dev各种讨论的主题, #vim IRC频道。
有些人(主要是Paul LeoNerd Evans)想要解决这个问题(甚至在支持这个终端的控制台Vim中),并且已经漂浮了various proposals。
但截至今日,尚未有补丁或志愿者出现,尽管许多人表示希望在未来的Vim 8主要版本中拥有此功能。
我会建议具有<TAB>
做一些有用的东西:
nmap <TAB> <C-W>
nmap <TAB><TAB> <C-W><C-W>
这种方式,您可以使用tab
的窗口操作。当然,你不能有ctrl-i
的行为。我映射,i
此:
nnoremap ,i <C-I>
这完美的作品,应该是最好的答案 –
我发现ctrl-tab
工作作为默认ctrl-i
时tab
被remaped。
在macvim中工作。我没有检查其他vims。
非常感谢。我也发现在这个页面中这是不可能的[如何独立地映射和](http://vim.1045645.n5.nabble.com/how-to-map-lt-tab-gt-and-lt-ci- GT-独立地-td1185417.html)。因此,我应该让自己不要无意中按下TAB键。 –
tisyang
感谢您的回答。我真的希望这个问题能尽快解决 - 所有的讨论似乎最终都会被抛出,这意味着它需要重新思考一个主要的代码。这是一个当前(ish)线程:https://groups.google.com/d/topic/vim_dev/2bp9UdfZ63M/discussion –
Vim 7.3的当前补丁级别表明很快会有一个新版本(7.4?)。我希望这个问题在未来的Vim 8.0中得到解决。 –