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 start
and无关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中映射它们?