Skip to content

Latest commit

 

History

History
34 lines (23 loc) · 2.1 KB

vim.md

File metadata and controls

34 lines (23 loc) · 2.1 KB

原文 拷贝至此处只为方便自己查询

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 行下方。