当前位置:首页 > Linux > 正文

Linux vi怎么用?

在Linux终端输入”vi 文件名”启动vi编辑器,按i键进入编辑模式修改内容,按ESC返回命令模式,使用方向键移动光标,命令模式下输入:wq保存并退出,:q!强制退出不保存。

Linux中Vi编辑器的使用详解

Vi(Visual improved)是Linux系统中最经典、最强大的文本编辑器之一,由Bill Joy于1976年开发,作为系统管理员和开发者的必备工具,Vi以其高效的操作模式和广泛的兼容性(几乎所有Unix/Linux系统预装)成为编辑配置文件、脚本和代码的首选,下面将全面解析Vi的使用方法,从基础操作到进阶技巧。

Vi编辑器的核心概念

Vi有三种工作模式,理解模式切换是高效使用的关键:

  1. 命令模式(Normal Mode)

    启动Vi后的默认模式,用于执行复制、删除、搜索等命令(不可直接输入文本)。

  2. 插入模式(Insert Mode)

    按特定键(如 i)进入,可自由编辑文本(屏幕底部显示 -- INSERT --)。

  3. 末行模式(Ex Mode)

    在命令模式下按 进入,用于保存文件、退出、搜索替换等操作。


基础操作指南

启动与退出

# 打开文件(不存在则新建) vi filename.txt # 退出操作(在命令模式下) :q # 退出(无修改时) :q! # 强制退出不保存 :wq 或 :x # 保存并退出

模式切换

按键 功能
i 光标前插入
a 光标后插入
o 当前行下方插入新行
O 当前行上方插入新行
ESC 返回命令模式

光标移动(命令模式下)

按键 功能
h j k l 左/下/上/右移动
0 行首
行尾
gg 文件第一行
G 文件最后一行
Ctrl + f 向下翻页
Ctrl + b 向上翻页

文本编辑

命令 功能
x 删除光标处字符
dw 删除一个单词
dd 删除整行
yy 复制当前行
p 粘贴到光标后
u 撤销操作
Ctrl + r 重做操作

搜索与替换

# 命令模式下 /pattern # 向下搜索 "pattern" ?pattern # 向上搜索 :noh # 取消高亮显示 # 末行模式下 :%s/old/new/g # 全局替换所有 "old" 为 "new" :12,18s/old/new/ # 替换12-18行的内容

文件操作

:w # 保存文件 :w newfile.txt # 另存为新文件 :e filename.txt # 打开其他文件 :set nu # 显示行号 :set nonu # 隐藏行号


进阶技巧

  1. 分屏操作

    Linux vi怎么用? 第1张

  2. 宏录制

    Linux vi怎么用? 第2张

    • qa 开始录制宏(保存到寄存器 a)
    • 执行操作(如删除行、插入文本)
    • q 停止录制
    • @a 回放宏
    • 批量注释

      :起始行,结束行 s/^/#/ # 添加行首注释(如 :2,10 s/^/#/) :起始行,结束行 s/^#// # 取消注释
    • 常见问题解决

      • 误入其他模式?

        连续按 ESC 返回命令模式。

      • 文件只读无法保存?

        用 :w !sudo tee % 强制保存(需sudo权限)。

      • 显示乱码?

        检查编码::set fileencoding,转换格式 :e ++enc=utf-8。

      • 恢复崩溃文件

        重启后执行 vi -r filename 恢复未保存内容。


      高效学习建议

      1. 掌握高频命令(i、ESC、:wq、dd、yy/p)。
      2. 练习使用方向键替代鼠标(h/j/k/l)。
      3. 查阅Vim内置教程:终端输入 vimtutor(30分钟入门)。

      Vi的学习曲线陡峭但回报巨大,熟练后编辑效率远超图形工具,推荐安装增强版 Vim(Vi IMproved)以支持语法高亮、插件等功能:

      sudo apt install vim # Debian/Ubuntu sudo yum install vim # CentOS/RHEL


      参考资料

      1. Vim官方文档
      2. Linux Man Pages (man vi)
      3. 《Practical Vim》 by Drew Neil(书籍)

      原创声明:本文基于Vi/Vim通用操作规范及实践经验整理,适用于大多数Linux发行版(CentOS, Ubuntu, Debian等),文中命令已通过Bash 5.0及Vim 8.2验证。

      Linux vi怎么用? 第3张

0