我对Vim还比较陌生,正在学习其中的使用方法,但尚未找到进入可视模式的实际用途。
在哪些场景下,可视模式特别有用呢?
是否有一些只能在可视模式下执行的操作?
我对Vim还比较陌生,正在学习其中的使用方法,但尚未找到进入可视模式的实际用途。
在哪些场景下,可视模式特别有用呢?
是否有一些只能在可视模式下执行的操作?
当我想要突出文本段落时,我使用视觉模式。在标准模式下,我首先键入v ,然后启用视觉模式。接下来,我使用箭头键移动光标。这将导致从我的起点到当前光标位置之间的文本被突出显示。一旦像这样选择了一个文本段落,则在命令模式(通过键入:)中输入命令(例如搜索 / 替换)仅影响所选区域。
另一个有用的视觉命令是shift+v(可视化行)。这与上述相同,但是它每次选择整行而不是单个字符。
当你想要注释一段文本时。
在命令模式下:
Shift + v,
ctrl +v,
j或k,
I,#(注释字符)然后按Esc
Vim会将注释字符插入到块的开头。
当我使用Gvim时,我发现通过可视模式更容易复制数据到剪贴板。
在命令模式下:
Shift + v,
j或k,
",+,
y
这里+是剪贴板寄存器。
对我来说,这比使用标记更易读。
用于手动缩进
Shift + v, Shift + >向右移动。 Shift + <向左移动。.重复
这很有趣 :-)
&
或LaTeX中的\item
)。除了其他(很棒的)答案外,这是定义动作范围的一种简单方法。例如,限制搜索和替换到特定方法...
假设您有以下代码:
function foo() {
abc();
while (1) {
def();
abc();
}
}
您可以将光标放在任何大括号或圆括号上,然后按下v、%、:、s/abc/xyz/g,您的搜索和替换将有一个定义的范围,在此范围内执行操作。
如果您想对一个不容易描述为基本移动命令的文本部分应用命令,那么可视模式非常有用。您可以使用复杂的移动序列在可视模式下选择一些文本,然后对该选择应用命令。
我还没有看到以下内容被提及,可能是因为它们很微妙。
每当你复制(yank)一些文本,然后想要 d 更改其他文本,例如,diw
删除内部单词,Vim 将把删除的文本放入未命名寄存器中。然后,如果你尝试粘贴,它将只是将删除的文本粘贴回来,除非你使用 "0p
从 0 寄存器中粘贴。
但是通过 visual
模式,你可以像这样做 viwp
,而不必处理寄存器。
因此,为了比较,在括号内复制和替换:
yiw
-> 移动到某个地方 -> vi(p
与
yiw
-> 移动 -> ci(<C-r>0p
yiw
-> 移动 -> "_di(p
yiw
-> 移动 -> di("0P
注意:这也适用于删除文本并将其粘贴回文本对象的情况。请参见此处。
如果您想要跳转到文本对象的开头或结尾,您可以在可视化
模式下选择它,然后按 o键。例如, va"
选择引号内的任何位置,然后按 o 键跳转到匹配的引号,就像匹配括号所用的 % 按键一样。
我经常发现自己使用可视块模式(Ctrl + v)比其他任何可视模式都要多。
一旦你意识到这种模式,你就可以轻松地删除缩进、注释等。根据我的经验,这通常比想出一个等效的搜索和删除语句更快。
你也可以通过选择文本块并按下 I,输入你想添加的内容,然后按下 Esc(注意:你可能需要重新绘制屏幕(例如移动光标)才能看到效果)来添加缩进(或像 Cherian 所说的注释)。