Linux vi/vim
vi 是 Linux 内置的经典文本编辑器,vim 是它的增强版(Vi IMproved),支持语法高亮与多级撤销。改配置、写脚本、看日志都离不开它,是 Linux 使用者必须掌握的编辑器。
vim 的三种模式
vim 与普通编辑器的最大区别是「模式」:命令模式、插入模式、底线命令模式。
- 命令模式:打开文件后的默认状态,可移动光标、删除、复制。
- 插入模式:按 i 进入,可正常输入文字,按 Esc 返回命令模式。
- 底线命令模式:按 : 进入,可输入 wq、q! 等保存退出命令。
模式切换示例:
vim hello.txt # 打开或新建文件,默认进入命令模式
i # 按 i 进入插入模式,输入 hi
Esc # 按 Esc 回到命令模式
: # 按冒号进入底线命令模式
:wq # 保存并退出(w 保存,q 退出)
打开、保存与退出
常用底线命令如下,输入后回车执行:
vim /etc/hosts # 打开指定文件
:q # 不保存退出(未修改时可用)
:q! # 强制退出,放弃修改
:w # 只保存不退出
:wq # 保存并退出
:x # 同 :wq,保存并退出
ZZ # 命令模式下直接保存退出
移动光标与删除
命令模式下用方向键或 hjkl 移动;把「操作 + 次数」组合可高效编辑:
h j k l # 左 下 上 右 移动一个字符/行
0 # 跳到行首
$ # 跳到行尾
gg # 跳到文件第一行
G # 跳到文件最后一行
dd # 删除光标所在行
3dd # 连续删除 3 行
x # 删除光标处一个字符
dw # 删除一个单词
复制粘贴与撤销
复制粘贴在命令模式下完成:
yy # 复制光标所在行
3yy # 复制 3 行
p # 粘贴到光标下一行
P # 粘贴到光标上一行
u # 撤销上一步操作
Ctrl+r # 反撤销(重做)
查找与替换
命令模式下按 / 查找,输入 n 跳到下一个匹配;按 : 做全局替换:
/nginx # 向下查找 nginx,按 n 继续查找下一个
?nginx # 向上查找 nginx
:%s/foo/bar/g # 把全文 foo 全部替换为 bar
:%s/foo/bar/gc # 逐个替换,替换前询问确认
常用显示技巧
在底线命令模式下设置显示效果,退出后不保存:
:set nu # 显示行号
:set nonu # 取消行号
:set hlsearch # 高亮搜索结果
:set nohlsearch # 取消搜索高亮
:set paste # 粘贴模式,避免自动缩进干扰
小结
vim 学习的核心是「记住模式」:插入模式打字、命令模式操作、底线命令模式存退。先掌握 wq、dd、yy、p、u 与查找替换,日常编辑就已足够高效。