1.环境
vim7.3+zsh+iTerm2 上小牛
2. 映射问题
这是我的问题清单:
- 我的 vim 无法获得一些快捷方式:
<C-q>,<C-s>,<A-Left|Right|..>,<D-char>. - 我无法 在 mac 中映射一些特殊键,例如
<A-char>,<A-S-char>, 。<C-A-char>
<C-q>和<C-s>
在 iTerm2 中,<C-q>将删除整行,(<C-s>并将启动Fwd-i-search)。
它的行为不像 start/stop character ,所以我认为这个问题与stty startand无关stty stop。
但是在我将它添加到 之后~/.zshrc,我惊讶地发现该映射在 Vim 中运行良好<C-q>。<C-s>同时它不会改变 iTerm2 的行为<C-q>(<C-s>我不知道为什么)。
stty start undef
stty stop undef
<A-char>mac中的问题
在 mac 中,映射<A-char>不会直接在 mac 中工作。
:inoremap <A-u> type some string A-u
:inoremap <A-p> type some string A-p
:inoremap
i õ * type some string A-u
i ð * type some string A-p
据我所知,<A-char>在 mac 中,hit<A-u>只会打印一个声音警报。命中<A-p>将打印π。我发现那张地图π效果很好。
:inoremap π type some string A-p
<A-u>是否可以在vim中映射?
另一个复杂的问题,是否有可能<A-S-char>,<C-A-char>
:map <A-S-p> not work
:map ∏ works well(A-S-p will print `∏`)
:map <C-A-p> not work
:map <C-π> still not work
:map <C-S-p> do work
上面相关的另一个复杂问题,是否可能映射<C-A-char>?
<A-Left|Right|UP|Down
在 iTerm2 中,点击<A-Left|...将导致(iTerm2 不会为它们绑定任何快捷方式。):
<A-Up> print 'A' with a sound alert.
<A-Down> print 'B' with a sound alert.
<A-Left> print 'D' with a sound alert.
<A-Down> print 'C' with a sound alert.
在 vim 中,<A-Left|...与<Left><Right><Up><Down>插入模式、普通模式、可视 mdoe 和 Ex 模式等相同。
<D-char>
关于一些键<D-char>是iTerms自己的热键,例如: 1.<D-q>将退出iTerm2 1.<D-w>将关闭iTerm2中的当前选项卡
另一方面,其他键如<D-s>不是热键,在 vim 和终端中不打印任何字符。是否可以在vim中映射它们?