Linux命令-vi(经典终端文本编辑器)

📅 2026/8/22 6:43:34
Linux命令-vi(经典终端文本编辑器)
Linux命令-vi经典终端文本编辑器 命令简介 语法格式⚙️ 常用选项 实战示例1. 基本文件操作2. 移动与导航普通模式3. 插入与编辑4. 撤销与重做5. 搜索与替换6. 可视模式操作7. 保存、退出与文件操作8. 多窗口与标签页9. 实用外部命令集成10. 配置与自定义⚠️ 危险操作与注意事项 相关命令 总结快速参考vi是 Linux/Unix 系统预装的经典终端文本编辑器拥有模式化编辑哲学是所有系统管理员的必备技能。现代系统中vi通常是vimVi Improved的符号链接。 命令简介viVisual Editor诞生于 1976 年由 Bill Joy 开发是 Unix 世界中使用最广泛的文本编辑器。其核心设计理念是模式化编辑——将文本浏览与文本编辑分离通过键盘快捷键实现高效操作。重要提示现代 Linux 发行版中vi命令通常链接到vimVi IMproved后者提供了语法高亮、多级撤销、插件系统等增强功能。学习vi实际上是学习vim的基础操作。vim 有四种基本模式模式进入方式用途普通模式默认模式 / 按Esc浏览文本、执行命令插入模式iaoO等输入文本可视模式vVCtrlv选择文本块命令行模式:/?执行 Ex 命令 语法格式vi[选项][文件...]# vim 增强语法vim[选项][文件...]# 从指定行开始vi行号 文件名# 从匹配模式开始vi/模式 文件名⚙️ 常用选项选项说明-R只读模式打开文件等同view-r列出可恢复的交换文件或从交换文件恢复行号打开文件后光标定位到指定行/模式打开文件后光标定位到首次匹配处-b二进制模式-d差异模式相当于vimdiff-o[N]水平分割打开 N 个窗口-O[N]垂直分割打开 N 个窗口-c 命令启动后执行指定的 Ex 命令 实战示例1. 基本文件操作# 打开文件如果文件不存在则新建vi/etc/hosts# 打开多个文件使用 :n 和 :prev 切换vifile1.txt file2.txt file3.txt# 以只读模式打开vi-Rimportant.conf# 跳到第 100 行打开vi100 /var/log/syslog# 跳到包含 error 的行vi/error /var/log/syslog# 恢复上次异常退出的文件vi-r# 恢复指定交换文件vi-r.notes.txt.swp2. 移动与导航普通模式# 基本方向移动替代方向键h# ← 左移一个字符j# ↓ 下移一行k# ↑ 上移一行l# → 右移一个字符# 单词级移动w# 移动到下一个单词开头b# 移动到上一个单词开头e# 移动到当前单词末尾# 行内快速跳转0# 跳到行首^# 跳到第一个非空白字符$# 跳到行尾# 全文跳转gg# 跳到文件第一行G# 跳到文件最后一行:100# 跳到第 100 行3. 插入与编辑# 进入插入模式的方式i# 在光标前插入a# 在光标后插入I# 在行首插入A# 在行尾插入o# 在下方新建一行并插入O# 在上方新建一行并插入# 复制粘贴普通模式yy# 复制当前行3yy# 复制 3 行yw# 复制一个单词y$# 复制到行尾p# 在光标后粘贴P# 在光标前粘贴# 删除操作x# 删除光标处字符dd# 删除剪切当前行5dd# 删除 5 行dw# 删除一个单词d$# 删除到行尾D# 同 d$删除到行尾4. 撤销与重做u# 撤销上一步操作Ctrlr# 重做恢复撤销U# 撤销对当前行的所有修改.# 重复上一次修改操作5. 搜索与替换# 搜索/pattern# 向下搜索 pattern?pattern# 向上搜索 patternn# 跳转到下一个匹配N# 跳转到上一个匹配*# 向下搜索光标所在单词# # 向上搜索光标所在单词# 替换命令行模式:s/old/new/# 替换当前行第一个匹配:s/old/new/g# 替换当前行所有匹配:%s/old/new/g# 替换整个文件所有匹配:%s/old/new/gc# 替换前逐个确认:10,20s/old/new/g# 替换第 10 到 20 行的匹配6. 可视模式操作# 进入可视模式v# 字符可视模式V# 行可视模式Ctrlv# 块可视模式# 可视模式中的典型操作# 选择文本后按 d 删除# 选择文本后按 y 复制# 选择文本后按 缩进# 选择文本后按 反缩进# 块可视模式批量编辑列编辑# 1. Ctrlv 进入块模式# 2. 选择多行# 3. Shifti 进入插入模式# 4. 输入内容后按 Esc所选行会批量添加7. 保存、退出与文件操作# 保存与退出:w# 保存文件:w filename# 另存为 filename:q# 退出:q!# 强制退出不保存修改:wq# 保存并退出:x# 保存并退出同 :wqZZ# 保存并退出普通模式下# 强制保存只读文件需要权限:w!sudotee%# 以 sudo 权限保存当前文件8. 多窗口与标签页# 分割窗口:split 文件名# 水平分割:vsplit 文件名# 垂直分割Ctrlw w# 在窗口间切换Ctrlw q# 关闭当前窗口Ctrlw# 等分窗口大小# 标签页:tabnew 文件名# 新建标签页:tabnext# 下一个标签页:tabprevious# 上一个标签页gt# 切换到下一个标签页9. 实用外部命令集成# 在 vi 中执行 Shell 命令:!ls-la# 执行 ls 命令并显示结果:!date# 显示日期:r!date# 将命令输出插入到当前光标位置:r /etc/hosts# 将文件内容插入到当前光标位置# 对选中的文本执行外部命令# 可视模式下选中文本然后按 :!sort:,!sort# 对选中的行进行排序:%!sort-u# 对整个文件排序并去重10. 配置与自定义# 查看当前 vim 配置:set# 显示所有修改过的选项:set all# 显示所有选项:set number# 显示行号:set nonumber# 隐藏行号:settabstop4# 设置 Tab 宽度为 4:set expandtab# Tab 转换为空格:set hlsearch# 高亮搜索结果:set nohlsearch# 取消搜索高亮:set ignorecase# 搜索忽略大小写:set smartcase# 智能大小写有大写则区分:syntax on# 开启语法高亮:syntax off# 关闭语法高亮⚠️ 危险操作与注意事项⚠️危险警告以下操作可能造成数据丢失请谨慎执行。# 危险强制退出不保存修改:q!# 所有未保存的修改将永久丢失# 危险批量替换可能产生意外结果:%s/old/new/g# 替换前建议先 /old 搜索确认范围# 回滚方案# 1. 使用 u 撤销单步操作# 2. 使用 :e! 重新加载文件放弃所有修改# 3. 检查交换文件恢复vi -r filename关键提醒养成经常按Esc回到普通模式的习惯修改配置文件前先备份cp /etc/fstab /etc/fstab.bak系统文件编辑使用sudoedit或sudo -e更安全vimtutorvimtutor命令是官方新手教程推荐所有初学者运行 相关命令命令关系与说明vimvi 的增强版本支持语法高亮、插件等vimdiff使用 vim 对比文件差异vim -d file1 file2vimtutorvim 官方交互式教程nano更简单的终端文本编辑器适合新手emacs另一个强大的终端编辑器viewvi 的只读模式等同于vi -Rsed流编辑器适合脚本化批量替换diff对比文件差异 总结vi/vim是 Linux 系统中不可或缺的核心工具。虽然学习曲线陡峭但一旦掌握其模式化编辑哲学和键盘快捷键文本编辑效率将大幅提升。建议通过vimtutor命令进行 30 分钟的交互式练习。进阶提示深入学习.vimrc配置、插件管理vim-plug、代码补全YouCompleteMe等 vim 高级特性可以将 vim 打造成媲美 IDE 的开发环境。