Vim 基础操作

移动命令

  • h:左移一个字符。

  • j:下移一行。

  • k:上移一行。

  • l:右移一个字符。

  • w:前移至下一个单词的开头。

  • e:前移至当前或下一个单词的末尾。

  • b:后移至前一个单词的开头。

  • 0(零):移动到当前行的开头。

  • ^:移动到当前行的第一个非空字符。

  • $:移动到当前行的末尾。

  • G:移动到文件的最后一行。

  • gg:移动到文件的第一行。

  • {:移动到上一个段落的开头。

  • }:移动到下一个段落的开头。

  • :加行号,然后回车:跳转到文件中的指定行号。

  • :%:移动到文件的最后一行。

删除命令

  • x:删除当前光标下的字符。

  • X:删除当前光标前的字符。

  • dd:删除(剪切)当前行。

  • dw:删除从光标位置到下一个单词开头的内容。

  • de:删除从光标位置到当前或下一个单词的末尾的内容。

  • db:删除从光标位置到前一个单词的开头的内容。

  • d$D:删除从光标位置到行末的内容。

  • d^:删除从光标位置到行首的非空白字符的内容。

  • d0:删除从光标位置到行首的内容。

  • dG:删除从当前行到文件末尾的所有行。

  • dgg:删除从当前行到文件开头的所有行。

  • d}:删除到下一个段落的开头。

  • d{:删除到上一个段落的开头。

  • d加移动命令:结合移动命令使用d可以删除光标从当前位置到移动命令目标位置之间的内容。例如,dw会删除当前单词,d$会删除到行尾的内容。

在 Vim 中,如果你编辑错了,可以使用撤销命令来撤销最近的更改。Vim 提供了几种不同的撤销和重做操作:

撤销命令

  • u:撤销最近一次的更改。在普通模式下,按u可以撤销上一次的修改。

  • Ctrl + r:重做上一个撤销的更改。如果你撤销了某些操作,然后想要重新应用这些操作,可以在普通模式下按Ctrl + r来重做。

高级撤销操作

Vim 也支持更复杂的撤销历史操作,例如:

  • :undo N:撤销最后 N 次更改。这里的 N 是一个数字,表示你想要撤销的更改次数。

  • :earlier Ns:回到 N 秒前的状态。

  • :earlier Nm:回到 N 分钟前的状态。

  • :later Ns:向前到 N 秒后的状态,用于在使用:earlier命令后恢复。

  • :later Nm:向前到 N 分钟后的状态,同样用于在使用:earlier命令后恢复。

示例

  • 假设你不小心删除了一行文本,你可以简单地按u来撤销这个删除操作。

  • 如果你撤销了太多次,想要重新应用某些更改,可以使用Ctrl + r来重做撤销的操作。

在 Vim 中,如果你想要移动代码行,使得某一行或多行代码上下移动(即替换位置),可以使用以下命令进行操作。这些操作对于重构代码或调整代码顺序非常有用。

复制粘贴

模式:normal/正常模式(刚进入 vim 的默认模式)

使用 v 进行选区

  • 1、把光标移动到开始复制的位置

    • 使用 v 选择字符

    • 使用 V 选择整行

    • 使用 ctrl + v 选择矩形块

  • 2、光标移动到结束复制的位置

  • 3、使用 y 复制

  • 4、光标移动到想要粘贴的位置

    • 使用 p 粘贴到光标后

    • 使用大写 P 粘贴到光标之前

    • 使用 gp 粘贴到光标后并将光标移动到粘贴内容之后

使用其他方式选区

  • yyY 复制当前行。

  • yw 用来复制往后一个词,y3w 复制往后三个词。

  • yiw 复制当前词。

  • y$ 复制到行尾

  • y^ 复制到行首。

  • yf. 复制直到下一个 . 字符。

  • ggyG:%y 复制整个文件。

剪切粘贴

模式:normal/正常模式(刚进入 vim 的默认模式)

  • 1、把光标移动到开始复制的位置

    • 使用 v 选择字符

    • 使用 V 选择整行

    • 使用 ctrl + v 选择矩形块

  • 2、光标移动到结束复制的位置

  • 3、使用 d 剪切

  • 4、光标移动到想要粘贴的位置

    • 使用 p 粘贴到光标后

    • 使用大写 P 粘贴到光标之前

移动单行代码

  1. 将当前行向下移动

    • 在普通模式下,按dd来"剪切"当前行。

    • 然后移动到目标位置,按p来"粘贴"该行到当前行之下。

    或者,使用更简便的命令:

    • :m +1:当前行向下移动一行。

    • J(大写 j),这会将当前行与下一行合并,但这并不是真正的移动,而是合并两行。

  2. 将当前行向上移动

    • 在普通模式下,按dd来"剪切"当前行。

    • 然后移动到目标位置,按P来"粘贴"该行到当前行之上。

    或者,使用更简便的命令:

    • :m -2:当前行向上移动一行(因为是移动到上一行的上一行的位置,所以是-2)。

移动多行代码

如果你想移动多行代码,可以使用可视模式选择多行,然后使用相同的方法移动它们:

  1. 进入可视模式(按V)然后使用方向键选择多行。

  2. 剪切所选行(按d)。

  3. 移动到目标位置,使用pP粘贴。

或者,使用:命令移动:

  1. 选择行范围,例如:'<,'>m +1将选择的行向下移动。

  2. 对于向上移动,使用例如:'<,'>m -2

查找

在 Vim 编辑器中,查找文本是一项常用功能,可以帮助你快速定位到文件中的特定内容。下面是如何在 Vim 中进行查找操作的基本指南:

1. 启动查找模式

在普通模式下(确保你不在插入或命令行模式),按下 / 键启动向前查找模式,或按下 ? 键启动向后查找模式。

2. 输入查找词

在你按下 /? 后,屏幕底部会出现一个命令行提示符,此时你可以输入你想查找的词或短语。

3. 执行查找

输入完查找词后,按下 Enter 键,Vim 会从光标当前位置开始向前或向后查找你输入的词。如果找到匹配项,Vim 会高亮显示第一个匹配的词,并将光标移动到该位置。

重复查找

  • 按下 n 键,Vim 会继续向当前查找方向(前进或后退)查找下一个匹配项。

  • 按下 N 键(大写),Vim 会向相反的方向查找上一个匹配项。

查找选项

  • 如果你希望查找时不区分大小写,可以设置 ignorecase 选项:

    :set ignorecase
  • 如果只在有大小写差异时才区分大小写,可以设置 smartcase 选项(这通常与 ignorecase 一起使用):

    :set smartcase
  • 要高亮所有匹配的查找结果,可以设置 hlsearch 选项:

    :set hlsearch
  • 如果查找时想要看到实时结果,可以启用 incsearch 选项:

    :set incsearch

示例

假设你要查找单词 "example":

  1. / 进入查找模式。

  2. 输入 example

  3. Enter 开始查找。

  4. 使用 nN 浏览其他匹配项。

这些基本操作和设置可以帮助你在 Vim 中有效地查找文本内容。根据你的需求调整查找设置,可以更加方便地编辑和浏览文件。

Last updated

Was this helpful?