2010-01-25 167 views
18

MacVim中的一个更好的功能是可以使用通常的OS命令复制和粘贴文本(即command + C和command + V)。使用SHIFT +箭头在vim/MacVim中选择文本

当你在一分钟之前在其他编辑器中工作并且你的大脑还没有准备好建议你的手指如何键入真实的东西时,情况尤其好。

但是,我的大脑需要做的一件事就是做一些小小的思考:这就是文本选择模式。在非vi编辑器中,我会使用Shift + Arrow进行此操作,并且在MacVim中尝试此操作不起作用。但另一方面,在我看来,Shift + Arrow也不能用于其他任何事情。是否可以重新映射密钥以使其成为可能?

(理想情况下,编辑器仍然会在插入模式下在选择文本后,会腾出一些额外的击键。)

+1

不错的问题,但我试图建议将它作为程序配置问题移动到超级用户。这里讨论的emacs非常类似的问题:http://meta.stackexchange.com/questions/36017/what-site-should-host-questions-about-emacs-keybinding对元。 – dmckee 2010-01-25 01:49:58

+0

您是否想在选择后进入插入模式,因为您正在替换选择(例如按'c'来清除选择并进入插入模式)或出于某种其他原因?在我看来,如果您有选择,则处于可视模式,因此无法处于插入模式。 – Jay 2010-01-25 01:50:03

+0

我想保持插入模式,因为我不想离开插入模式,除非真的有必要。在“正常”文本编辑器中,当您选择文本时,您还将保持插入模式。这更多的是因为'过渡'的原因;正如我所说的,通过Command键复制和粘贴(甚至保存)也可以在插入模式下工作。 – Debilski 2010-01-25 01:59:44

回答

25

从手册:

在Mac OS X文本编辑器让用户按住Shift +移动键 选择。另外,按 可打印键,同时选择 将用 替换当前选择的字符。 MacVim可以模拟 这种行为(通过提供 键绑定并将'keymodel' 和'selectmode'设置为非默认值 值),但默认情况下未启用 。为了使的MacVim表现得更像 文本编辑,而不是像Vim的,添加 以下行到你的“〜/ .vimrc”里 (不是.gvimrc)文件:

if has("gui_macvim") 
    let macvim_hig_shift_movement = 1 
endif 
+0

太好了。非常感谢。看起来这正是我一直在寻找的东西。 – Debilski 2010-01-25 01:53:08

+3

虽然有一个小小的烦恼,但现在我需要在使用箭头键时在视觉模式下按shift。习惯'hjkl'的时间... – Debilski 2010-01-25 02:03:38

6

作为自我提醒和为他人整齐提示:

由于SHIFT +箭头键选择和鼠标选择现在将自动启动SELECT模式,这意味着它显然不是那么容易通过使用鼠标或箭头键进行选择VISUAL。 (即使已经在VISUAL模式下,鼠标选择仍然会触发SELECT模式。)因此,无论何时想要将命令应用于选择,以下方法都有帮助。

  • 用鼠标按ESC
  • gv自动重新选择前面的选择和触发VISUAL模式选择文本或Shift +箭头
  • 取消选择

编辑:同样可以使用简单的CTRL + g完成。

+2

您可以添加'set selectmode ='以避免默认进入SELECT模式。使用Ctrl + g在SELECT和VISUAL模式之间切换。 – kennytm 2011-05-24 09:36:34

+0

就我个人而言,大多数情况下,我喜欢在使用SHIFT +箭头时选择模式;但Ctrl + g无论如何都是个好主意。比ESC,g,v'简单一点。 – Debilski 2011-05-24 12:53:18