【问题标题】:Using SHIFT+Arrows to select text in vim / MacVim使用 SHIFT+箭头在 vim / MacVim 中选择文本
【发布时间】:2011-01-08 22:33:15
【问题描述】:

MacVim 中一个更好的功能是可以使用常用的操作系统命令在其中复制和粘贴文本(即 command+C 和 command+V)。

当您在一分钟前还在另一个编辑器中工作并且您的大脑还没有准备好建议您的手指如何输入真实的东西时,这尤其适用。

但是,我的大脑需要考虑一件事:文本选择模式。在非 vi 编辑器中,我会为此使用 Shift+Arrow,但在 MacVim 中尝试这样做是行不通的。但另一方面,在我看来,Shift+Arrow 也没有被用于其他任何事情。是否可以重新映射键以使其成为可能?

(理想情况下,编辑器在选择文本后仍处于插入模式;这样可以节省一些额外的击键。)

【问题讨论】:

  • 很好的问题,但我很想建议将其作为程序配置问题移至超级用户。与此处讨论的 emacs 非常相似的问题:meta.stackexchange.com/questions/36017/… on meta.
  • 您想在选择后进入插入模式,因为您正在替换选择(就像您按c 清除选择并进入插入模式时一样),还是出于其他原因?在我看来,如果你有一个选择,你就处于可视模式,因此不能处于插入模式。
  • 我想保持插入模式,因为我不想离开插入模式,除非真的有必要。在“普通”文本编辑器中,当您选择文本时,您也将处于插入模式。更多是出于“过渡”的原因;正如我所说,通过命令键复制和粘贴(甚至保存)也可以在插入模式下工作。
  • @dmckee:在 SO 上查看 vim 配置提示的负载,我实际上并没有为这个问题想到 SU。我不介意它是否被移动;但我认为它现在已经得到了回答。

标签: vim macvim textselection


【解决方案1】:

来自手册:

Mac OS X 上的文本编辑器允许用户 按住shift+移动键延长 选择。此外,按下 选择时可打印的键 将当前选择替换为 那个角色。 MacVim 可以模拟 这种行为(通过提供 键绑定并通过设置'keymodel' 和'selectmode'到非默认 值)虽然它不是由 默认。让 MacVim 表现得更好 像 TextEdit 而不是像 Vim,添加 将以下行添加到您的“~/.vimrc” (不是 .gvimrc)文件:

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

【讨论】:

  • 太棒了。非常感谢。看起来这正是我一直在寻找的东西。
  • 一个小烦恼是,现在即使在视觉模式下使用箭头键时,我也需要按 shift。是时候习惯“hjkl”了……
  • 非 macvim 而不是 vim 呢?
【解决方案2】:

作为对自己的提示和对他人的简洁提示:

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

  • 使用鼠标或 SHIFT+箭头选择文本
  • ESC取消选择
  • gv自动重新选择之前的选择并触发VISUAL模式

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

【讨论】:

  • 您可以添加set selectmode=以避免默认进入SELECT模式。使用 Ctrl+g 在 SELECT 和 VISUAL 模式之间切换。
  • 就个人而言,我喜欢在大部分时间使用 SHIFT+箭头时处于选择模式;但无论如何 Ctrl+g 是个好主意。比ESC, g, v简单一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-20
  • 2012-04-01
  • 2014-11-06
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多