vim - 如何在 VIM 中取消 TAB 映射并且不使 Ctrl-I 无效

标签 vim

当我在普通模式下使用vim时,我经常不小心按下TAB键,TAB键默认与Ctrl-I做同样的事情。我想让按键 TAB 不执行任何操作,所以我将这一行放入 vimrc 文件中:

nmap <TAB> :echo<CR> 

因此,TAB 键不会执行任何操作,但这也使得 Ctrl-I 键也不会执行任何操作。 那么,如何让 TAB 不执行任何操作,而 Ctrl-I 在 vi​​m 中(正常模式)也能正常工作呢?

最佳答案

由于键盘输入的内部处理方式,不幸的是,这在今天通常是不可能的,即使在 GVIM 中也是如此。某些组合键,例如 Ctrl + 非字母 无法映射,以及 Ctrl + 字母Ctrl + Shift + 字母无法区分。 (除非您的终端为其发送了不同的 termcap 代码,而大多数终端都没有。)这也适用于 <Tab>/<C-I> , <CR>/<C-M>这是一个已知的痛点,也是 vim_dev 和 #vim IRC channel 上各种讨论的主题。

有些人(首先是 Paul LeoNerd Evans)想要修复这个问题(即使是支持此功能的终端中的控制台 Vim),并且已经 float various proposals .

但截至今天,还没有补丁或志愿者主动提出,尽管许多人表示希望在未来的 Vim 8 主要版本中提供此功能。

关于vim - 如何在 VIM 中取消 TAB 映射并且不使 Ctrl-I 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14641942/

相关文章:

linux - VIM : How to copy all lines having a substring to another file/buffer?

vim - 特定文件类型的新文件的自动命令

vim - Ubuntu下gVim最大化时 `:tabnew'命令的问题

vim - 如果在 Vim 之外编辑文件,则保留撤消历史记录

Vim Ctrlp 无法正确解析 Ag(银搜索)--忽略选项

javascript - Vim 将内容行转换为 javascript 字符串文字

vim - 使用外部命令使用 VIM 格式化代码

vim 从命令行水平和垂直拆分

vim - NERDTree 不更新树结构

vim - tmux 和 vim 被卡住