Dan*_*Dan 17 vim iterm osx-lion
我注意到iTerm2提供了非常方便的功能,使用"Option key as + ESC"(或者作为meta,但显然已经过时了).
我尝试了它们两个,选项键在Bash(set -o emacs模式)和Emacs中按预期工作,但在Vim中没有.因此,我不能使用任何"M-"绑定.我发现的是:
"M-"映射在MacVim(7.3.53)中完美运行,但这不是在控制台之外,而是在这个问题的范围内.
我对如何使这些映射在Vim,iTerm2或Terminal下运行感兴趣.
我的规格:
我已经下载了最新的iTerm2,并试图通过i<C-v><M-a>以下设置查看它发送给Vim(/ )的内容:
选项作为选项:
Vim打印æ在我的法语键盘上是正常的和预期的
选项为Meta:
Vim待在那里,等待事情发生.什么都没打印.如果我按下Option并a依次按顺序获取a.按下选项并a以某种随机顺序打印á,这很奇怪,完全出乎意料.
选项为+ ESC:
Vim打印^[a意味着"逃脱角色后跟角色a".
从这些测试看来,<M->如果没有一些假想的黑魔法,Vim将永远不会收到.
如果您坚持使用"Option as + ESC",则似乎必须将所有自定义<M-something>映射更改为<Esc>something.这可能有用,但它会使任何非英语语言中的任何一种散文都变得痛苦.
我做什么:我保留Option键,这样我就可以œ…«»轻松输入字符,并使用<Leader>(映射到,,查看:help mapleader)我的所有自定义映射.
这里的一些人喜欢将它保留用于插件,并提倡一种更简单且可能更安全的方法.
inoremap <leader>, <C-x><C-o> "my way (copied elsewhere)
inoremap ,, <C-x><C-o> "another way
Run Code Online (Sandbox Code Playgroud)
小智 5
我留下我的选项键作为 Normal 并发现 Vim 将它们视为<T-绑定。因此,例如,我在我的 .vimrc 中有这个映射设置,以便在插入模式下移动到单词的末尾:
noremap! <T-Right> <C-o><Right>;
Run Code Online (Sandbox Code Playgroud)