我无意中在正常模式下按了gh并开始选择,所以我在文档中查找了:h Select-mode

键入可打印字符,<CR><BS>将删除所选内容,启动插入模式并用输入替换所选内容。 t扩展选择范围,除非它们以hjkl为前缀


<Shift><CTRL-O>会切换到可视模式。可以进行按行选择,然后按特征进行选择:但就像按字符选择一样。例如,删除整行后,可以稍后将其粘贴到一行的中间。



我有点困惑,因为我不明白创建此模式的原因:我所能看到的是它不如可视模式方便,并且不提供更多功能。

此外,我所做的搜索都给出了在可视模式,但不考虑选择模式。

所以我的问题是:


为什么创建了选择模式?到可视模式?
使用选择模式更有趣的用例是什么?

MetaNote我不知道哪个标签与此问题相关,请根据需要随时重新标记。

评论

对我来说,这听起来像大多数GUI编辑器所期望的。 (选择一行并不意味着它将在粘贴时移至新行,Shift +箭头将其扩展,键入替换选择,这是我希望从记事本中得到的所有内容。)
@muru:我同意它使人想起了这种编辑器,但这是否意味着已经实施了该模式,只是为了取悦一些希望将Vim用作较差的文本编辑器的用户?实际上,这对我来说似乎很奇怪。

实际上,该粘贴属性在某些情况下很有用。我确定有人在这里发布了有关粘贴的问题。至于覆盖,它可以节省击键次数(您不必按c键),因此根据您要执行的操作,选择模式可能会有用。可惜我一直忘了它。

我将尝试找到这个问题。对于覆盖,我真的不觉得c是保存的击键,因为选择不如在可视模式下方便(因为您不能直接使用e或iw)。

您说得对:当'selectmode'包含鼠标并且'mouse'包含当前模式的标志时,使用鼠标选择将启动select-mode(根据文档)。

#1 楼

选择模式的全部目的是提供一种类似于常规编辑器中使用的选择行为。

同一点上,还有一个mswin.vim,它更改了许多选项和映射以使Vim感到就像传统的编辑器一样。

我只能假设添加这些文件是为了取悦一部分Vim用户,可能是在将Vim移植到Windows时(我在文档中对Windows感到不屑)。

无论如何,选择模式对于摘要扩展插件至关重要,可以被滥用以获取乐趣和收益:

nnoremap § *``gn<C-g>
inoremap § <C-o>gn<C-g>
snoremap <expr> . @.


评论


我认为在Windows上移植Vim并创建这种模式来取悦用户非常令人惊讶:如果他们想要“经典”编辑器,为什么他们会使用Vim呢?但这似乎是唯一的解释。。。我也不是很了解您的映射的好处。据我了解,它们在选择模式下选择了光标下方的单词,一旦完成,为什么会这样有用?

–statox♦
15年9月28日在13:31

选择单词后,键入一些内容,然后按§选择下一个出现的词,再键入其他内容,然后再按§选择下一个出现的词,依此类推。您可以按。重复最后一次插入。它是“点公式”的一种变体。

– romainl
2015年9月28日14:14在

我还是不明白。选择行为以哪种方式更像常规编辑器?

–still_dreaming_1
16年7月11日在15:33

@ still_dreaming_1,在常规编辑器中,键入foo并选择它。您不需要按任何键来替换选择的内容,对吗?这就是选择模式所模拟的。

– romainl
16年7月11日在15:53

@romainl您输入的那个“双S”字符是什么?您如何键入该字符?

–迈克尔
19年7月23日在13:18