Vim延伸线的范围

我是一位C#开发人员,他刚刚决定扩展我对可用工具的知识。 我决定学习的第一个工具是Vi / Vim。 到目前为止,一切进展顺利,但是我似乎无法find答案:

  1. 可以说我想抽出一系列线条。 我知道这样做有很多方法,但是我想用行号来做。 我认为这与替代命令的工作方式类似,像81,91y 。 有没有办法做到这一点?

  2. 我在正常模式下对g命令有点困惑。 它似乎做了很多事情,我不能确定g命令的核心。 我很困惑它是一个运动命令还是一种“全部捕捉”其他命令在正常模式下运行。 有人可以解释一下这个或者给我一个参考,给出一个g命令的一个很好的解释吗?

猛拉81-91行

 :81,91y<enter> 

如果你的手指不喜欢find:,键,这也会起作用(去第81行,抽出11行)

 81gg11yy 

我唯一使用的是5gg 。 去五号线 22gg :第22行。 正如jimbo所说的那样,它实际上只是一些其他命令的修饰符。

为了完整性,( http://vim.wikia.com/wiki/Power_of_g )解释了许多g在命令模式下的工作原理。

您也可以使用't'将当前行复制到当前光标位置。

 :81,91t.<enter> 

这将粘贴光标所在行下面的81-91行。

我从http://vimcasts.org了解到这是VIM的一个很好的资源。;

G命令转到某个行号,如果它伴随着一个计数值。 81G把你放在第81行。

y命令可以与G一起运动。 所以要把所有东西都y91G 91行,你可以使用y91G

一起你得到:

 81Gy91G 

去81线,然后去91线。

我也喜欢使用vim的相对行号选项,这意味着我可以input:

 :-10,-7ya a 

将文本放入命名缓冲区a。

注意指定A会将你正在拖延的内容附加到缓冲区a的当前内容。

不要忘了,你也可以复制文本块并移动文本块以及类似的命令:

 :-10,-7co . 

意思是把上面的四行文字复制到当前行的下面,

 :-10,-7mo . 

意味着将上面的四行文字移动10行到当前行的下面。

g本身并没有做任何事情。 这是一对夫妇元命令之一,它包含了一堆不相关的命令。

z是另外一个这样的命令。

Vim的:help indexg描述为:

 |g| g{char} extended commands, see |g| below 

向下滚动(或:help g )列表。