我注意到
iTerm2提供使用“选项键作为ESC”(或作为元,但显然已经过时)非常方便的功能.
我尝试过它们,并且选项键按照预期在Bash(set -o emacs模式)和Emacs中工作,但不在Vim中.因此,我不能使用任何“M”绑定.
我发现这是:
>如果我将选项设置为“ESC”,vim只是了解ESC键,并不知道我实际上是指Meta-key.
>如果我将选项设置为“Meta”,用“选项”修改的键就像没有修饰符一样(不知道如何正式测试我所键入的组合中的vim).
“M-”映射在MacVim中完美地工作(7.3.53),但这不在控制台之外,而不在此问题的范围内.
我感兴趣的是如何使这些映射在Vim上工作,在iTerm2或Terminal下.
我的规格:
> MAC OS X Lion 10.7.2
> iTerm2 1.0.0.20111020
> vim @ 7.3.107_0 python26 [虽然MacPorts]
我已经下载了最新的iTerm2,并尝试使用以下设置查看发送给/ Vim(i< C-v>< M-a>)的内容.
>选项作为选项:
Vim打印在法国键盘上正常和预期的æ
>选项作为元:
维姆呆在那里,等待事情发生.没有印刷.如果我按选项和顺序我只是获得一个.按选项和一些随机顺序可能会打印á,这是奇怪的,完全意外的.
>选项作为ESC:
Vim打印^ [a表示“退出字符后跟字符a”.
从这些测试可以看出,Vim永远不会收到“M->没有一些假想的黑魔法.
如果你坚持使用“选项作为ESC”,似乎你将不得不更改所有你自定义的< M-东西>映射到< Esc>某事.这可能会工作,但它会使任何非英语语言的散文写成痛苦.
我做什么:我离开选项键,以便我可以轻松地键入字符,如œ…«»,我使用< Leader> (映射到,请参阅:help mapleader)为所有我的自定义映射.
inoremap <leader>,<C-x><C-o> "my way (copied elsewhere) inoremap,<C-x><C-o> "another way