调整视觉选择的另一端

调整视觉选择的另一端

我认为这将允许 vim 的视觉选择功能通过提供“切换”当前选择的终点的能力而超越鼠标的效率:

如图所示(|代表光标(Vim 让它在所在字符的左侧进行操作)和[text]代表选定的文本,假设它们占用的宽度为零。 之间的空间背景[ ]看起来是灰色的,而 后面紧接着的字符|是绿色的):

从...开始

Some |text here
Some second line of text
Some more text in the third line 

按下v2j;注意该m字符包含在选择中(现在由光标突出显示):

Some [text here
Some second line of text
Some |m]ore text in the third line 

10l

Some [text here
Some second line of text
Some more text |i]n the third line 

正是在这个时候,我可能会决定开始从不同的位置选择。例如,包括"Some"第一行。

在典型的编辑器/IDE 中,我别无选择。我可能不得不将手移到鼠标上,使用传统方法选择文本通常太痛苦了,使用单词跳转Ctrl和向上/向下翻页确实有点帮助,但无论如何,我必须致力于选择的终止点之一在我开始选择之前

因此,在 Vim 中,我希望能够通过点击神秘绑定来获取我当前的状态并将其带到这里:

Some [|text here
Some second line of text
Some more text i]n the third line 

然后我只需点击^<Home>(在这种情况下,如果没有前导空格,则两者作用相同)即可将其变成

[|Some text here
Some second line of text
Some more text i]n the third line 

说我改变主意了再次,我想调整另一端!

[Some text here
Some second line of text
Some more text |i]n the third line 

e

[Some text here
Some second line of text
Some more text i|n] the third line 

太棒了!现在我可以使用此选择做任何我想做的事情了。

那么,这个神秘的约束到底是什么呢?

此外,将一些最常用的移动命令绑定到另一行键上可能更有效,这些键(在可视模式下)总是会移动选择的另一端。因此,在可视模式选择操作中,如果将选择的另一端的移动键设置为“yuio”(可能不是一个好选择,因为我们确实需要,但请y耐心听我说完),我们可以输入

v2j10l5ye

而不是

v2j10lX^Xe

嘿,你知道吗,这甚至不算什么改进。只要给我那个 X 功能就行了。:)

我正在寻找的完美答案:

  • 嘿,抬头看看:help some_awesome_vim_feature_that_just_does_this
  • 嘿,看看https://github.com/awesome_user/vim_plugin_that_does_this
  • 嘿,看看:help vimscript_functions_that_allow_mutation_of_visual_selections

我对 Vim 的迷恋还很新,所以对 Vimscript 还很陌生,说实话我不想尝试学习完后还有语言,所以希望我不会被迫将其构建为插件。

答案1

我不确定我是否真正理解你想要什么,但也许是这样的:

:help v_o

基本上,当文本在视觉上突出显示时,您可以按下它o,它就会跳转到可视区域的另一个“端”而不对其进行修改。

相关内容