Linux 操作系统 vim/vi 编辑器
·
vim/vi 是 Linux 系统核心的文本编辑器,vim 是 vi 的增强版,支持语法高亮、撤销重做等丰富功能,且几乎所有 Linux 发行版均预装,是 Linux 操作的必备工具。vim 的核心是模式化编辑,不同模式下按键功能完全不同,掌握模式切换和核心操作,就能高效完成文本编辑。
一、vim/vi 核心三种模式
命令模式(Normal)
这是打开 vim 后的默认模式,主要用于移动光标、执行复制 / 删除 / 粘贴 / 撤销 / 重做等基础编辑操作,所有模式下按 Esc 键均可返回命令模式。
插入模式(Insert)
专门用于输入、编辑文本内容,需要从命令模式通过指定按键切换进入,进入后可直接输入文字。
末行模式(Command)
主要用于执行保存、退出、查找替换、设置编辑器参数等指令,从命令模式按:///?键可进入,操作后需按回车生效。
二、基础操作
1. 打开 / 关闭文件
打开文件,文件不存在则新建 vim filename.txt # 打开文件并精准定位(调试代码/修改配置常用) vim +10 filename.txt # 直接定位到第10行
vim +/error filename.txt # 直接定位到第一个包含error的行
# 退出vim(均在末行模式下执行,按回车生效)
:q # 未修改文件内容时,正常退出
:q! # 强制退出,放弃所有未保存的修改
:wq # 保存修改并退出(等价于 :x,更简洁)
:w # 仅保存修改,不退出编辑器
:w new.txt # 将文件另存为new.txt,原文件不变
2. 命令模式:光标移动(高效编辑的关键,无需按回车)
基础移动(手不离开核心键盘区,比方向键更高效):h(左)、j(下)、k(上)、l(右)快速跳转:
0跳转到当前行首,$跳转到当前行尾gg跳转到文件首行,G跳转到文件末行- 数字 + G 跳转到指定行,如
5G跳转到第 5 行 Ctrl+d向下翻半屏,Ctrl+u向上翻半屏w跳转到下一个单词开头,b跳转到上一个单词开头
3. 命令模式:核心编辑操作(无需按回车,复制 / 删除 / 粘贴 / 撤销)
- 删除(剪切):
dd删除当前行;5dd删除从当前行开始的 5 行;x删除光标所在字符;dw删除光标所在单词 - 复制:
yy复制当前行;5yy复制从当前行开始的 5 行 - 粘贴:
p将复制 / 剪切的内容粘贴到光标下一行;P粘贴到光标上一行 - 撤销 / 重做:
u撤销上一步操作;Ctrl+r重做被撤销的操作
4. 命令模式:切换到插入模式的 6 种方式(光标位置不同,按需选择)
i:在光标前方插入文本a:在光标后方插入文本o:在当前行下方新建一行,光标定位到新行并插入I:直接跳转到当前行行首,并进入插入模式A:直接跳转到当前行行尾,并进入插入模式O:在当前行上方新建一行,光标定位到新行并插入
5. 末行模式:高频实用指令(按回车生效)
查找与替换
- 快速查找:命令模式下按
/,输入查找关键词,按n跳转到下一个匹配项,按N跳转到上一个匹配项 - 全局替换:
:s/old/new/g仅替换当前行的所有 old 为 new;:1,10s/old/new/g替换 1-10 行的所有 old 为 new;:%s/old/new/g替换全文的所有 old 为 new(% 表示全文,g 表示全局匹配)
行号显示与关闭
:set nu临时显示行号,关闭文件后失效:set nonu关闭行号显示- 永久显示行号:编辑
~/.vimrc文件,添加set nu后保存退出,后续打开 vim 将自动显示行号
多文件分屏编辑
:sp filename.txt水平分屏打开另一个文件:vsp filename.txt垂直分屏打开另一个文件- 分屏切换:
Ctrl+w配合方向键,在不同分屏间切换光标
三、进阶实用技巧(提升编辑效率)
1. 批量注释 / 取消注释
均在末行模式执行,按回车生效,可替换注释符适配不同语言(#////* 等)
- 批量注释:
:1,10s/^/#/g给 1-10 行的行首添加 #注释符(^ 表示行首) - 取消注释:
:1,10s/^#//g删除 1-10 行行首的 #注释符
2. 快速缩进
命令模式下操作,无需按回车,适合编写代码 / 配置文件时调整格式
>>让当前行向右缩进(相当于按 Tab)<<让当前行向左缩进(相当于按 Backspace)- 数字 +>>/<< 批量缩进,如
5>>让当前行开始的 5 行一起向右缩进
3. 保存只读文件(普通用户打开 root 权限文件的解决方案)
若以普通用户身份打开 root 权限的文件(如/etc/profile),修改后直接:w会提示保存失败,可在末行模式执行:
:w !sudo tee %
执行后输入系统密码,即可强制保存修改。
四、核心总结
- vim 的核心是模式切换,Esc 是返回命令模式的通用键,新手需先熟记模式切换方式;
- 命令模式是 vim 的核心,
dd/yy/p/u(删 / 复制 / 粘贴 / 撤销)和gg/G/0/$(光标跳转)是高频必记操作; - 末行模式的
:wq/:q!(退出)、:%s/old/new/g(全局替换)、:set nu(显示行号)是新手必备指令; - 新手可通过 Linux 内置的
vimtutor命令,进入交互式教程,快速巩固基础操作。
更多推荐




所有评论(0)