Vi实用技巧
· 阅读需 3 分钟
vi(或 vim)是类 Unix 系统中非常常用的文本编辑器,凭借其高效的键盘操作和强大的功能,成为许多开发者和运维人员的首选。掌握 vi 的常用技巧,可以大幅提升编辑和处理文件的效率。
1. 基本模式和操作
vi 有三种主要模式:
- 命令模式 (Normal mode):默认模式,可移动光标、删除、复制等。
- 插入模式 (Insert mode):输入文本。
- 底线命令模式 (Command-line mode):执行保存、退出、搜索等命令(以
:开头)。
1.1 切换模式(命令模式下触发)
i:光标前插入(进入插入模式)I:行首插入(进入插入模式)a:光标后插入(进入插入模式)A:行尾插入(进入插入模式)o:下方新开一行(进入插入模式)O:上方新开一行(进入插入模式)Esc:回到命令模式
2. 光标移动(命令模式下)
h:左移l:右移j:下移k:上移0:行首^:行首非空字符$:行尾w:跳到下一个单词开头e:跳到单词结尾b:跳到上一个单词开头gg:文件开头G:文件结尾H / M / L:屏幕顶部 / 中间 / 底部
3. 文本操作(命令模式下)
x:删除光标所在字符dd:删除整行D:删除从光标到行尾yy或Y:复制整行p:粘贴到光标后P:粘贴到光标前u:撤销Ctrl+r:重做>> / <<:缩进 / 反缩进
3.1 组合操作(命令模式下)
3dd:删除 3 行d$:删除到行尾y}:复制到段落末尾
4. 搜索与替换
/pattern:向下搜索pattern(命令模式触发)?pattern:向上搜索pattern(命令模式触发)n:重复上次搜索(同方向)(命令模式)N:重复上次搜索(反方向)(命令模式):%s/old/new/g:全文件替换old为new(底线命令模式):%s/old/new/gc:替换时询问确认(底线命令模式)
5. 文件操作(底线命令模式)
:w:保存:q:退出:wq或ZZ:保存并退出:q!:不保存强制退出:e filename:打开文件:r filename:插入另一个文件内容
6. 高级技巧
- 多行缩进选择:在命令模式下,
V选择行,然后>或<缩进 - 多文件编辑:
:n / :N:下/上一个文件(底线命令模式):args *.txt:打开多个文件(底线命令模式)
- 宏录制(命令模式):
q{register}开始录制,例如qa- 执行操作
q停止录制@a执行宏
- 折叠代码(命令模式):
zf{motion}:折叠zo / zc:打开/关闭折叠za:切换折叠
7. 提高效率的技巧
- 使用
.重复上次命令(命令模式) - 使用
Ctrl+o返回上次跳转位置(命令模式) :set number显示行号(底线命令模式):set relativenumber显示相对行号(底线命令模式)- 使用
:set hlsearch高亮搜索(底线命令模式) - 使用
:set incsearch边输入边搜索(底线命令模式)