[Practical.Vim(2012.9)].Drew.Neil.Tip28 学习摘要

Tip28

技术分享

Use Line Numbers as an Address
If we enter an Ex command consisting only of a number, then Vim will interpret that as an address and move our cursor to the specified line.

Specify a Range of Lines by Visual Selection
Instead of addressing a range of lines by number, we could just make a visual selection. If we ran the command 2G followed by VG, we would make a visual selection that looks like this:
除了通过行数来指定文本区域,我们可以先做一个visual selection.如果我们依次运行命令2G,VG,我们就会得到这样一个visual selection
技术分享

If we press the : key now, the command-line prompt will be prepopulated with the range :’<,’>. It looks cryptic, but you can think of it simply as a range standing for the visual selection. Then we can specify our Ex command, and it will execute on every selected line:
如果这时我们输入: ,命令提示会弹出范围 :’<,’> 。这个看起来很奇怪,但是你可以把这个当作一个visual selection的选择范围。然后我们可以输入Ex命令,然后就会在每一行上执行。
技术分享

The ‘< symbol is a mark standing for the first line of the visual selection, while ‘> stands for the last line of the visual selection.
‘<表示visual selection的第一行,’>表示visual selection的最后一行。

Specify a Range of Lines by Patterns
Vim also accepts a pattern as an address for an Ex command, such as the one shown here:
Vim在Ex命令中还可以把pattern作为address,例如下面
技术分享
the range begins on the line containing an opening <html>tag and ends on the line containing the corresponding closing tag.
这个范围开始于包含<html>标签的行,结束于包含对应关闭标签的行。

Modify an Address Using an Offset
Suppose that we wanted to run an Ex command on every line inside the<html></html>block but not on the lines that contain the<html> and</html> tags themselves. We could do so using an offset:
假设我们打算在<html></html> 范围内的每一行执行Ex命令,但是并不包含<html></html> 所在行,我们可以用offset来实现。
技术分享
The general form for an offset goes like this:
offset的一般使用方法如下:

:{address}+n

If n is omitted, it defaults to 1. The {address} could be a line number, a mark, or a pattern.
如果没有n,默认值为1. address可以为行数,mark,或pattern.

Suppose that we wanted to execute a command on a particular number of lines, starting with the current line. We could use an offset relative to the current line:
假设我们打算在特定的行上执行命令,从当前行开始,我们可以利用offset这样做。

:.,.+3p

The . symbol stands for the current line, so :.,.+3 is equivalent to :2,5 in this case.
. 表示当前行,所以 :.,.+3 在这个例子中表示:2,5

Line 0 doesn ’t really exist, but it can be useful as an address in certain contexts. In particular, it can be used as the final argument in the :copy {address} and :move {address} commands when we want to copy or move a range of lines to the top of a file
0行并不存在,不过在特定上下文中非常有用。特别是当我们项复制或移动一段代码到文件的头部的时候,它可以作为:copy {address}:move {address} 命令的最终参数。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。