常用命令
- 选择文件中的所有一个词并且替换 进入命令模式,可以通过按 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) 是多个窗口的集合。
🧪 示例
假设你打开了三个文件:
vim file1.txt file2.txt file3.txt
你可以通过以下命令在它们之间切换:
:ls " 查看当前缓冲区
:b2 " 切换到编号为 2 的缓冲区
:bd 3 " 删除编号为 3 的缓冲区