Vim :copy
命令 (缩写形式 :co
,或 :t
) 可以把一行或多行从文档的某个位置复制到另一个位置,而 :move
命令则可以把一行或多行移到文档的其他地方。
整行拷贝可以在Vim普通模式下用 yank
(或缩写形式 y
) 命令解决,但有一个缺点就是必须把光标移到要拷贝的行上才能执行该操作。
而 :copy
和 :move
命令可以在命令中直接显式指定要操作的行范围和目标位置,从而可实现在任何地方拷贝或移动任意一行或者多行。
1. Vim行复制命令copy
copy
命令的格式为 :[range]copy {address}
。
[range] 表示要复制的行范围,{address} 表示复制的目标位置,这两个参数都可以缺省,用于表示Vim光标所在当前行。
例如,5copy.
表示复制Vim当前打开的文件的第 5 行到当前行 (用 .
表示),即为第 5 行创建一份副本,并放到当前行下方。
下标列出了使用 copy
命令的缩写形式 t
进行文件复制的一些实例及用途,用于理解复制命令 copy
的用途。
命令 | 用途 |
---|---|
:3,5t. |
把第 3 行到第 5 行的内容复制到当前行下方 |
:t5 |
把当前行复制到第 5 行下方 |
:t. |
复制当前行到当前行下方 (等价于普通模式下的 yyp ) |
:t$ |
把当前行复制到文本结尾 |
:'<,'>t0 |
把高亮选中的行复制到文件开头 |
2. Vim行移动命令move
Vim行移动命令 :move
(缩写形式为 :m
) 的命令格式和 :copy
命令很相似,格式为 :[range]move{address}
。
[range] 表示要移动的行范围,{address} 表示移动的目标位置,这两个参数都可以缺省,用于表示Vim光标所在当前行。
例如,在Vim命令行模式下执行命令 :'<,'>m$
可以把当前高亮选中的所有行移动到文件末尾处,而 :8,10m2
可以把当前打开文件的第8~10行内容移动到第 2 行下方。

嗯,扫一扫就可以找到小女子我啦~