在vim中“选择模式”的常见用例是什么?

时间:2016-08-17 02:25:18

标签: vim

这是我第一次注意到vim中的{strong>选择模式,当时我visual-line模式<c-g>意外触发了它。

Vim已经visual mode用于文本选择selection mode的用例是什么,有人可以给我一个提示吗?

(注意:我已经查看了将其描述为

的手册页
  

MS Windows文本选择的相似性

但我还是不太明白为什么我们在vim中需要任何鼠标操作?

2 个答案:

答案 0 :(得分:7)

选择模式通常用于代码段插件,例如vim-snipmate。可以创建对于选择模式唯一的映射,以免干扰常规的可视模式行为。

以下是Drew Neil的Practical Vim摘录:

  

如果您乐意接受Vim的模态性质,那么您应该这样做   找不到选择模式,它掌握着用户的手   想让Vim更像其他文本编辑器。我能想到   只有一个我一直使用选择模式的地方:使用时   插件,模拟TextMate的代码段功能,选择模式   突出显示活动占位符。

答案 1 :(得分:6)

正如文档所示,select modevisual mode略有不同。这是您可以在其中执行的命令:

Commands in Select mode:
- Printable characters, <NL> and <CR> cause the selection to be deleted, and
  Vim enters Insert mode.  The typed character is inserted.
- Non-printable movement commands, with the Shift key pressed, extend the
  selection.  'keymodel' must include "startsel".
- Non-printable movement commands, with the Shift key NOT pressed, stop Select
  mode.  'keymodel' must include "stopsel".
- ESC stops Select mode.

- CTRL-O switches to Visual mode for the duration of one command. *v_CTRL-O*
- CTRL-G switches to Visual mode.

Otherwise, typed characters are handled as in Visual mode.

When using an operator in Select mode, and the selection is linewise, the
selected lines are operated upon, but like in characterwise selection.  For
example, when a whole line is deleted, it can later be pasted halfway a line.

您可以看到文档here

他们的意思是&#34;类似于MS Windows选择&#34;可能您可以使用Shift+Arrows扩展选择范围,并且输入的所有可打印字符都将替换所选文本并输入insert mode

另请参阅this question/answer at the vi.SE