2011-11-10 46 views
7

我最近已切换到在以前使用Linux的工作中使用Mac。我发现了关于MacVim(从http://code.google.com/p/macvim/),并试图移植我以前的keymappings。是某些键映射在MacVim中不起作用

我曾经有的映射如下:

  • Ctrl-T键:新选项卡
  • CTRL-W:关闭选项卡/窗口
  • 按Ctrl-1。 .. Ctrl-0:切换到编号标签
  • Alt-Up:新标签(同按Ctrl-T
  • Alt键左/按住Alt键右键:切换到上一个/下一个标签
  • 按Ctrl-Alt键-E:打开FuzzyFinder文件模式
  • CTRL-ALT-乙:在缓冲器模式下打开FuzzyFinder
  • 按下Ctrl - Alt-W:从缓冲器清除尾随空格

现在,为了使这些映射更像'Mac like',我决定切换前两个使用该选项(即。 Apple徽标)键,并且所有其他人使用命令键代替Alt(即:Ctrl-Alt-E变为Ctrl-Command-E)。我在http://macvim.org/OSX/index.php上读到这个密钥可以用D(ie)映射。我的.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的-TCmd的-W打开和关闭标签成功运行。
  • Cmd-1 ... Cmd-0成功地切换标签。

什么不起作用:

  • 加利福尼亚 - 截至打开一个标签不起作用。
  • Cmd-Left and Cmd-Right切换选项卡不起作用。
  • Ctrl-Cmd-ECtrl-Cmd-B用于打开FuzzyFinder不起作用。
  • 按Ctrl-CMD-W清除空白不工作(但它也不会关闭选项卡,因为它会不CTRL
+0

如果您自己找到解决方案,则可以接受您自己的答案。 ;) – sjas

+0

有一个[reason](http://learnvimscriptthehardway.stevelosh.com/chapters/05.html)总是使用'* nore(map | abbrev)'(例如'nnoremap'),而不是'nmap'。 – ZyX

+0

感谢ZyX的建议。当我有机会的时候,我想要阅读'学习Vim Script the Hard Way'的整个过程! –

回答

5

所以事实证明,有一个BU g在Macvim中(http://code.google.com/p/macvim/issues/detail?id=317),这意味着无法映射ctrl键。相反,我绘制了领导者密钥(又名反斜杠),现在似乎都行得通。

+0

嗨@Joel Cross你能告诉我你是如何更具体地解决这个问题的?我尝试将一个键映射到ctrl + command + w。谢谢 – bean

+0

嗨乔尔,你能告诉我更多的细节如何映射ctrl + command + w吗? – bean

+0

对不起,我的意思是将F这样的键映射到ctrl + command + w,而不是反过来 – bean

7

:verbose map <D-Up> 
调查事故原因

另外尝试有选择地启用你的其他插件,看看映射正在清除某种方式

+0

* 最后从/Applications/MacPorts/MacVim.app/Contents/Resources/vim/gvimrc设置 –

+0

所以看起来好像一个全局文件覆盖了我的配置。我很惊讶,因为我会认为我的用户配置会优先。 –

+0

我在我的.vimrc中添加了“let macvim_skip_cmd_opt_movement = 1”行,现在这些标签正常工作。最后三个命令(使用ctrl-cmd组合的命令)仍然无法正常工作。 –