【发布时间】:2011-12-26 01:45:06
【问题描述】:
我最近从以前使用 Linux 改用 Mac 工作。我发现了 MacVim(来自 http://code.google.com/p/macvim/)并一直在尝试移植我以前的键盘映射。
我以前的映射如下:
- Ctrl-T:新标签页
- Ctrl-W:关闭标签/窗口
- Ctrl-1 ... Ctrl-0:切换到编号标签
- Alt-Up:新标签(与 Ctrl-T 相同)
- Alt-Left/Alt-Right:切换到上一个/下一个标签
- Ctrl-Alt-E:以文件模式打开 FuzzyFinder
- Ctrl-Alt-B:以缓冲模式打开 FuzzyFinder
- Ctrl-Alt-W:从缓冲区中清除尾随空格
现在,为了使这些映射更像“Mac”,我决定将前两个切换为使用 option(即 Apple 徽标)键,而所有其他映射都使用 command 键而不是 Alt(即。Ctrl-Alt-E 变为 Ctrl-Command-E)。我在http://macvim.org/OSX/index.php 上读到这个键可以用 D (即 )映射。我的.vimrc新内容如下:
nmap <D-t> :tabnew<cr>
nmap <D-w> :close<cr>
nmap <D-1> 1gt
nmap <D-2> 2gt
nmap <D-3> 3gt
nmap <D-4> 4gt
nmap <D-5> 5gt
nmap <D-6> 6gt
nmap <D-7> 7gt
nmap <D-8> 8gt
nmap <D-9> 9gt
nmap <D-0> 10gt
nmap <D-Up> :tabnew<CR>
nmap <D-Right> :tabnext<CR>
nmap <D-Left> :tabprevious<CR>
"FuzzyFinder
nmap <C-D-e> :FufFileWithFullCwd<CR>
nmap <C-D-b> :FufBuffer<CR>
"Whitespace remover
nmap <C-D-w> :%s/\s\+$//<CR>
因此,在重新映射键之后,一些现在可以工作,而另一些则不能,原因没有明确的逻辑。
什么有效:
- Cmd-T 和 Cmd-W 成功地用于打开和关闭选项卡。
- Cmd-1 ... Cmd-0 成功用于切换标签。
什么不起作用:
- Cmd-Up 打开标签不起作用。
- 用于切换标签的 Cmd-Left 和 Cmd-Right 不起作用。
- Ctrl-Cmd-E 和 Ctrl-Cmd-B 用于打开 FuzzyFinder 不起作用。
- 用于清除空白的 Ctrl-Cmd-W 不起作用(但它也不会关闭选项卡,就像没有 ctrl 一样。
【问题讨论】:
-
如果您自己找到了解决方案,您可以接受自己的答案。 ;)
-
有一个reason 总是使用
*nore(map|abbrev)(例如nnoremap)而不是nmap。 -
感谢 ZyX 的建议。如果有机会,我想我会读完整本《Learn Vim Script the Hard Way》!
标签: macos vim keyboard-shortcuts keymapping