Vim复制粘贴剪切命令详解

好的,我们来详细讲解一下 Vim 中关于复制(yank)、粘贴(paste)和剪切(delete,然后粘贴)的命令。

Vim 的操作逻辑是"动词+名词"。先理解几个核心"动词":

  • yyank(复制)
  • ppaste(粘贴)
  • ddelete(删除,但被删除的内容会存入寄存器,因此相当于剪切)

1. 复制(Yank)

a) 复制整行
  • 命令: yy
    • 记忆方法:y ank y(整个当前行)。
  • 效果: 将光标所在的整行内容复制到 Vim 的默认寄存器中。
b) 复制到某个字符 / 复制单词
  • 复制一个单词: yw
    • 记忆方法:y ank word。
    • 效果:从光标当前位置开始,复制到单词末尾(包括单词后的空格)。
  • 复制到下一个指定字符: ytx
    • 记忆方法:y ank t o the character x
    • 效果:从光标当前位置开始,复制到本行中下一个出现的字符 x 之前(不包含 x)。将 x 替换为任意字符,如 f, ; 等。
  • 复制单个字符: 通常不单独操作,而是使用可视模式
    • 命令:vl 然后 y
    • 记忆方法:v isual mode,然后移动光标 l (向右)选择字符,最后 yank。
    • 更简单的方法:在普通模式下,直接 y 然后 l(向右)或 h(向左)也能实现复制单个或多个字符,但不直观。

举例说明(复制):

假设有一行文本,光标在 W 上:

复制代码
Hello World, this is Vim.
  • yy:复制整行 Hello World, this is Vim.
  • yw:复制从 W 开始到 , 之前的单词,即 World(包括后面的空格,所以是 World )。
  • yt,:复制从 W 开始到 , 之前的所有内容,即 World
  • vlly:先按 v 进入可视模式,然后按两次 l(向右移动两个字符),选中 Wo,再按 y 复制。

2. 粘贴(Paste)

粘贴命令是统一的,取决于你复制的内容是整行还是部分内容。

  • 命令: p(小写) 和 P(大写)
  • 区别:
    • p(小写):在光标之后 粘贴。
      • 如果复制的是整行,则粘贴到当前行的下一行
      • 如果复制的是单词或字符,则粘贴到光标所在字符的后面
    • P(大写):在光标之前 粘贴。
      • 如果复制的是整行,则粘贴到当前行的上一行
      • 如果复制的是单词或字符,则粘贴到光标所在字符的前面

举例说明(粘贴):

假设我们刚刚用 yy 复制了整行 Hello World, this is Vim.,现在光标在另一行文本的 i 上:

复制代码
I love it.
  • 按下 p:整行内容会粘贴到 I love it.下一行

    复制代码
    I love it.
    Hello World, this is Vim.
  • 按下 P:整行内容会粘贴到 I love it.上一行

    复制代码
    Hello World, this is Vim.
    I love it.

假设我们刚刚用 yw 复制了单词 World ,现在光标在 i 上:

复制代码
I love it.
  • 按下 p:单词会粘贴到 i后面 ,变成 I World love it.
  • 按下 P:单词会粘贴到 i前面 ,变成 I World love it.(因为 i 是第一个字符,所以效果和 p 一样,但如果光标在单词中间,区别就明显了)。

3. 剪切(Delete,然后粘贴)

在 Vim 中,剪切 = 删除(d) + 粘贴(p)。因为使用 d 系列命令删除的内容会被保存到寄存器中,可以立即被粘贴。

a) 剪切整行
  • 命令: dd
    • 记忆方法:delete the current line。
  • 效果: 删除当前行,并将该行内容存入寄存器。之后可以按 pP 粘贴。
b) 剪切单词或字符
  • 剪切一个单词: dw
    • 记忆方法:d elete a word。
    • 效果:从光标当前位置开始,剪切到单词末尾。
  • 剪切到行尾: Dd$
    • 记忆方法:Delete to the end of the line。
  • 剪切单个字符: x(剪切光标下的字符)或 X(剪切光标前的字符)

举例说明(剪切):

假设光标在 W 上:

复制代码
Hello World, this is Vim.
  • dd:整行被剪切。该行消失,内容 Hello World, this is Vim. 被存入寄存器。按 p 可以将其粘贴到别处。
  • dw:从 W 开始剪切到 , 之前,即 World 被移除。原句变成 Hello , this is Vim.。此时按 p,可以将 World 粘贴到光标处(即 , 的前面)。
  • x:剪切光标下的字符 W,原句变成 Hello orld, this is Vim.。按 p 可以将 W 粘贴回来。

总结表格

操作 整行 单词 单个/部分字符
复制(Yank) yy yw v(进入可视模式)选中后 y,或 ytx
粘贴(Paste) p(下行) / P(上行) p(光标后) / P(光标前) p(光标后) / P(光标前)
剪切(Delete) dd dw x(当前字符)或 v选中后 d

核心要点:

  1. 动词(y, d) + 名词(w, $, tX) 是 Vim 操作的精髓。
  2. 剪切(d)掉的内容不要怕,它们都在寄存器里,用 p 可以粘贴回来。
  3. 多加练习,这些命令会变成肌肉记忆,极大提升编辑效率。
相关推荐
Wins_calculator12 小时前
C++编程的救赎:从反人性的编译到极速Vim工作流
c++·vim·wsl
猪猪侠|ZZXia2 天前
# vim中给变量添加双引号
编辑器·vim·excel
Run Freely9373 天前
Linux-01_2(vi / vim 编辑器)
linux·编辑器·vim
景晁3 天前
(自用)vim的高级命令
linux·编辑器·vim
go_bai5 天前
Linux--常见工具
linux·开发语言·经验分享·笔记·vim·学习方法
忘梓.6 天前
Linux的写作日记:Linux基础开发工具(二):vim编辑器
linux·编辑器·vim
_w_z_j_6 天前
Linux----使用vim编辑器
linux·编辑器·vim
qziovv7 天前
vim操作
linux·编辑器·vim
CC.GG7 天前
【Linux】Linux编辑器--vim
linux·编辑器·vim