Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim:在视觉模式下选择文本块的更快方法_Vim - Fatal编程技术网

Vim:在视觉模式下选择文本块的更快方法

Vim:在视觉模式下选择文本块的更快方法,vim,Vim,我已经使用vim很长一段时间了,我知道在视觉模式下选择文本块就像SHIFT+V一样简单,并逐行向上或向下移动箭头键,直到我到达我想要选择的文本块的末尾 我的问题是-在视觉模式下,是否有一种更快的方法来选择文本块,例如通过SHIFT+V,然后指定要停止选择的行号?(例如,通过:35,其中35是我要选择的行号-这显然不起作用,因此我的问题是如何找到类似的方法…文本对象: V35J 为最小30个字符添加的文本将选择从光标到第35行的所有内容 v将您置于选择模式,35指定要G转到的行号 您也可以使用v}

我已经使用vim很长一段时间了,我知道在视觉模式下选择文本块就像SHIFT+V一样简单,并逐行向上或向下移动箭头键,直到我到达我想要选择的文本块的末尾

我的问题是-在视觉模式下,是否有一种更快的方法来选择文本块,例如通过SHIFT+V,然后指定要停止选择的行号?(例如,通过
:35
,其中35是我要选择的行号-这显然不起作用,因此我的问题是如何找到类似的方法…

文本对象:

V35J


为最小30个字符添加的文本将选择从光标到第35行的所有内容

v
将您置于选择模式,
35
指定要
G
转到的行号


您也可以使用
v}
选择下一段开头的所有内容。

选择行数:

}V-2ap
shift+v 9j-选择10行

G                       Goto line [count], default last line, on the first
                        non-blank character linewise.  If 'startofline' not
                        set, keep the same column.
                        G is a one of jump-motions.

V35G实现了您想要的

除了其他人所说的,您还可以使用模式搜索扩展您的选择

例如,v/foo将从您当前的位置选择到下一个“foo”实例。如果您确实想要扩展到下一个“foo”实例,例如,在第35行,只需按n键将选择扩展到下一个实例,依此类推

更新
我不经常这样做,但我知道有些人广泛使用标记来进行视觉选择。例如,如果我在第5行,我想选择第35行,我可以按ma键在第5行放置标记
a
,然后:35移动到第35行。按住Shift+v键进入逐行视觉模式,最后选择'a'返回标记
a

Vim是一种语言。要真正理解Vim,您必须了解该语言。许多命令是动词,vim也有宾语和介词

V100G
V100gg
Vap
这意味着“选择当前行,直到并包括第100行。”

文本对象是非常强大的地方。他们用介词引入更多的宾语

V100G
V100gg
Vap

这意味着“选择当前段落”,即选择当前段落和紧随其后的空白行。

V2ap
这意味着“围绕当前段落和下一段落进行选择”

这意味着“转到当前段落的末尾,然后直观地选择它和上一段。”

将Vim理解为一种语言将帮助您从中获得最佳收益

向下选择后,可以与其他命令组合使用:

Vapd
使用上述命令,您可以在段落周围进行选择并将其删除。将
d
更改为a
y
进行复制,或将
c
更改为a
p
进行粘贴

一旦您掌握了所有这些命令如何协同工作的诀窍,那么您最终将不需要直观地选择任何东西。您可以使用
dap
命令删除段落,而不是直观地选择然后删除段落。

v%

将选择整个块

还可以玩:

v}
vp
vs

请参阅帮助:

:帮助文本对象


它列出了选择字母、单词、句子、段落、块等的不同方式。

}表示将光标移动到下一个段落。因此,使用
v}
选择整个段落。

您可以始终使用先行数字重复操作:

}V-2ap
  • 在视觉模式下,键入35&向下箭头;光标将向下移动35次,选择接下来的35行
  • 在正常模式下:
    • 删除35行35dd
    • 粘贴35次35便士
    • 撤消35个更改35u
    • 等等

您可以按
vi}
选择当前光标所在的用
{}
括号包围的块


你在那个街区的什么地方并不重要(只要确保你在最外面的街区就行了)。您还可以将
{
更改为任何具有类似
]
Shift+vnj
Shift+vnk


这将选择当前行和下一个/上一个
n
行。我发现它非常有用。

用于选择visual中的所有行: 键入Esc以确保您处于正常模式

:0 
键入ENTER转到文件的开头

vG

了解以下信息可能会很有用:

例如,要选择相同的行数,请使用
1v
您应该已经做了一些修改,以便能够使用
1v
,按块或按行

今天,我从以下网站看到了这个惊人的提示:

:5马克<| 10马克>|正常gvV
:5马克<| 10马克<|正常gv
也可以通过以下方式重置视觉块边界:

m< .......... sets the visual mode start point
m> .......... sets the visual mode end point
m<..设置视觉模式起点
m> 设置视觉模式终点
简单,只需按Shift v行号gg

示例:从当前行到第41行
只需按Shift v 41 gg

我在缩进模式下使用此选项:

v打开块上任意位置的可视模式


ZazaToogle它两次

+1问得好,因为我发现自己经常做这样的事情。我想知道这是否是开始使用
v%
v/pattern
或其他什么东西的地方?vip选择内部段落与选择内部句子。
V35G
将从当前行到第35行进行视觉选择,al因此,
V10j
V10k
将直观地选择下一个或上一个10lines@Stephan,这正是我想要的。谢谢!!对于行选择,我使用快捷方式:
nnoremap V
。在可视行模式下,只需用鼠标右键单击即可定义选择(至少在linux上是这样).总之,比只使用键盘更有效。F