我认为这将通过提供“切换”当前选择项的功能,使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时我非常环保,老实说,我想远离尝试学习另一种语言,因此希望我不会被迫将其构建为一个插件。
:help
吗?:help visual-mode
包含您可能需要的有关可视模式的所有信息,包括o
。
O
资本O的功能,但是我会记住o
。您指的第二件事可能是:help
更多使用。而且我使用它的时间比刚开始时要多。