在 vim 中高效复制多行并精准粘贴到目标行下方,关键在于避开可视模式的手动选中,直接用地址范围+寄存器操作:可用 :12,18y 复制指定行后移至目标行按 p 粘贴其下,或用 :12,18 co 50 一步复制到第 50 行后;标记法 :'a,'b co 100 适用于不确定行号场景;注意 p 粘贴到光标所在行下方,p 粘贴到其上方。

在 Vim 中高效复制多行并精准粘贴到目标行下方,关键在于避开可视模式的手动选中,直接用地址范围+寄存器操作,既快又准。
用行号范围一键复制(推荐)
不需要移动光标、不依赖可视模式,适合已知起止行号的场景:
- 输入 :12,18y —— 复制第 12 行到第 18 行(含首尾)
- 把光标移到目标行(比如第 50 行),按 p —— 粘贴到第 50 行下方(即第 51 行位置)
- 如果想粘贴到第 50 行本身之前,就按 P(大写)
用 :co 命令直接复制到指定行后(最精准)
这个命令一步到位,不依赖当前光标位置,也不需要后续粘贴动作:
- :12,18 co 50 —— 把第 12–18 行的内容“复制”到第 50 行之后(即插入在第 50 和 51 行之间)
- :12,18 co . —— 复制到当前光标所在行之后
- :12,18 co $ —— 复制到文件末尾
用标记快速定位不确定行号的区域
当起止行不好数、或跨屏时,用标记比数行更可靠:
- 光标移到开头行,输入 ma(设标记 a)
- 光标移到结尾行,输入 mb(设标记 b)
- 光标移到目标行(比如第 100 行),输入 :'a,'b co 100
- 也可以先 :'a,'b y 复制,再移光标按 p,灵活性更高
粘贴时注意光标落点决定位置
Vim 的 p 和 P 不是“粘贴到某行”,而是“粘贴到光标所在行的下方/上方”:
- 光标停在第 30 行任意位置 → 按 p → 新内容出现在第 31 行
- 光标停在第 30 行任意位置 → 按 P → 新内容出现在第 30 行(原第 30 行下移)
- 想确保粘贴到某行正下方,可先用 :30 跳转到第 30 行,再按 p











