Skip to content

常用命令

  • 选择文件中的所有一个词并且替换 进入命令模式,可以通过按 ESC 键从插入模式(Insert mode)回到命令模式(Normal mode)。 输入 :%s/old_word/new_word/g 并按回车。这里 % 表示对整个文件进行操作,s 是 substitute 命令, old_word 是你要替换的单词,new_word 是新单词,g 表示 global(全局),即替换每一行中所有的匹配项。 如果你想在替换前看到每次的替换,并决定是否替换: 输入 :%s/old_word/new_word/cg,其中 c 表示 confirm,即每次询问用户是否替换。

e 切换到单词的最后一个字母

ci() 删除()中的内容 并更换模式为插入 di() 删除()中的内容 da() 删除()中的内容 包括()本身

:bn 下一个标签页 :bp 前一个标签页

ctrl+tab 切换标签页

. 可以重复上一次的操作

f( 从左到右查找当前行出现(的位置 F( 从右到左查找当前行出现(的位置

df2 删除到2字符之间的所有内容

d5l d删除 5重复5次 l向右

ctrl+o 光标上一次的位置
ctrl+i 光标下一次的位置

ZZ 相当于:wq :20 跳转到20行 :+3 向下跳转三行 :-5 向上跳转5行

:%d 删除全部行

正常模式下

m 标记返回特定的位置 ma a标记 `a 返回标记的位置 ma 只在当前位置 mA 全局位置 大写字母

Ctrl+u:向上翻动一页(相当于按下 Page Down 键)。 Ctrl+d:向下翻动一页(相当于按下 Page Up 键)。 ctrl+n: 向下一行

宏操作

q 开始录制宏 给a录制宏 qa0f(ld5li.ESCj)

:reg a 查看a寄存器的内容

搜索

若要精确匹配整个单词 example,可以使用 \b 来表示单词边界。因此,你应该输入: /<example> 这里的 < 和 > 分别代表单词的开始和结束边界,确保只匹配完整的单词 example 而不是其作为其他词一部分出现的情况。 如果你希望忽略大小写进行搜索,可以在搜索时加上 \c 标志,或者在 Vim 的配置中设置忽略大小写(:set ignorecase)。例如: /\c<example> 这条命令会忽略大小写地寻找 example 单词。

0 行首 $ 行尾

> 像右缩进 < 左缩进

缓冲区

打开一个文件 相当于将文件内容加载到缓冲区,对缓冲区的文件进行修改,而不是直接操作文件内容

🌟 基本概念

  • 缓冲区(buffer):每打开一个文件就创建一个缓冲区,用于编辑文件内容。
  • 当前缓冲区:你正在编辑的那个缓冲区。
  • 活动缓冲区:已被加载到内存中的缓冲区。
  • 隐藏缓冲区:不是当前显示但仍存在内存中的缓冲区。

🔧 常用命令

命令功能说明
:ls:buffers列出所有缓冲区
:buffer {n}:b{n}切换到第 n 个缓冲区
:bnext:bn切换到下一个缓冲区
:bprevious:bp切换到上一个缓冲区
:bd(或 :bdelete删除缓冲区(不会删除文件,只移除缓冲区)
:bwipeout移除缓冲区并清除所有相关信息

💡 提示

  • 如果你开启了 hidden 选项(:set hidden),切换缓冲区时 Vim 不会强制你保存当前文件。
  • 每个缓冲区都有唯一的编号和名称,可以通过 :ls 查看。
  • 缓冲区 ≠ 窗口 ≠ 标签页:
    • 缓冲区(buffer) 是文件内容。
    • 窗口(window) 是缓冲区的一个可视区域。
    • 标签页(tab) 是多个窗口的集合。

🧪 示例

假设你打开了三个文件:

bash
vim file1.txt file2.txt file3.txt

你可以通过以下命令在它们之间切换:

vim
:ls        " 查看当前缓冲区
:b2        " 切换到编号为 2 的缓冲区
:bd 3      " 删除编号为 3 的缓冲区