当前位置: 首页
系统平台
UNIX系统VI编辑器使用教程

UNIX系统VI编辑器使用教程

热心网友 时间:2026-06-18
转载

vi 编辑器核心命令速查(完整指南)

文本编辑器是所有计算机系统中不可或缺的常用工具。在 UNIX 和 Linux 环境下,尽管存在 ex、sed 等众多编辑器,但 vi 无疑是人气最高、流传最久远的一款。vi 的命令体系较为庞杂,初学者往往感到无从下手。本文整理了一份 vi 三种模式下的核心命令速查表,帮助读者快速掌握 vi 的使用技巧,欢迎补充交流。

文本输入模式

在 vi 的文本输入模式下,操作逻辑非常直观:

  • a:在光标后插入(追加)文本
  • A:在当前行末尾追加文本
  • i:在光标前插入文本
  • o:在光标下方新建一行并进入插入模式

末行模式

末行模式(通过冒号 : 进入)是 vi 强大的命令控制中心:

  • :w:将缓冲区内容写入文件(保存),继续编辑
  • :w new_filename:将缓冲区内容另存为新文件 new_filename
  • :wq 或 ZZ:保存缓冲区内容后退出 vi
  • :q!:放弃所有修改,强制退出 vi
  • :wq!:强制保存缓冲区内容后退出(若为文件所有者,将忽略只读属性)
  • e!:撤销自上次保存以来所有未保存的修改
  • u:撤销最近一次编辑操作

命令模式(光标移动)

命令模式下,光标移动操作是日常使用频率最高的基础技能:

  • j(或向下箭头):向下移动一行
  • k(或向上箭头):向上移动一行
  • h(或向左箭头):向左移动一个字符
  • l(或向右箭头):向右移动一个字符
  • 空格:向右移动一个字符
  • w:向前移动一个单词(含标点)
  • b:向后移动一个单词(含标点)
  • $:移动到当前行行尾
  • 0(零)或 ^:移动到当前行行首
  • 回车:移动到下一行行首

编辑与删除操作(命令模式 & 末行模式)

编辑与删除操作是 vi 高效编辑的关键所在:

  • x(小写):删除光标位置处的字符
  • dw:删除当前单词(从光标处到单词末尾)
  • 3dw:删除从光标开始的三个单词
  • dd:删除光标所在的整行
  • 3dd:删除连续三行
  • yy:复制(拉出)当前行到剪贴板
  • p(小写):将剪贴板内容粘贴到当前行下方
  • P(大写):将剪贴板内容粘贴到当前行上方
  • :set nu:显示行号
  • :set nonu:隐藏行号
  • :set showmode:在屏幕底部显示当前操作模式
  • :set noshowmode:关闭模式显示
  • :set:显示所有 vi 变量及部分设置
  • :set all:显示所有 vi 变量及其当前值
  • G:跳转到文件的最后一行
  • :21:跳转到第 21 行
  • /string:从当前位置向后搜索字符串 string
  • ?string:从当前位置向前搜索字符串 string
  • n:重复上一次搜索(同方向)

Solaris vi 命令专篇

以下分类更加细化,适用于复杂编辑场景,尤其在 UNIX/Linux 服务器运维中非常实用。

进入 vi 的命令

  • vi filename:打开或新建文件,光标置于第一行首。
  • vi +n filename:打开文件,光标置于指定第 n 行首。
  • vi + filename:打开文件,光标置于最后一行首。
  • vi +/pattern filename:打开文件,光标置于第一个匹配 pattern 的字符串处。
  • vi -r filename:系统崩溃后恢复指定文件 filename 的编辑状态。
  • vi filename ... filename:同时打开多个文件,依次编辑。

光标移动类命令(补充)

  • h:左移一个字符
  • l:右移一个字符
  • space:右移一个字符
  • Backspace:左移一个字符
  • k 或 Ctrl+p:上移一行
  • j 或 Ctrl+n:下移一行
  • Enter:下移一行
  • w 或 W:右移到下一个单词的起始处
  • b 或 B:左移到上一个单词的起始处
  • e 或 E:右移到当前单词的结束处
  • ):光标移至当前句子的末尾
  • (:光标移至当前句子的开头
  • }:光标移至当前段落的开头
  • {:光标移至当前段落的结尾
  • nG:光标移至第 n 行行首
  • n+:光标向下移动 n 行
  • n-:光标向上移动 n 行
  • n$:光标移至第 n 行行尾
  • H:光标移至屏幕顶部行
  • M:光标移至屏幕中间行
  • L:光标移至屏幕底部行
  • 0:(数字零)光标移至当前行行首
  • $:光标移至当前行行尾

屏幕翻滚类命令

  • Ctrl+u:向文件开头方向翻滚半屏
  • Ctrl+d:向文件末尾方向翻滚半屏
  • Ctrl+f:向文件末尾方向翻滚一屏
  • Ctrl+b:向文件开头方向翻滚一屏
  • nz:将第 n 行移至屏幕顶部(不指定 n 则默认当前行)

文本插入与替换类命令

  • i:在光标前插入文本
  • I:在当前行行首插入文本
  • a:在光标后插入文本
  • A:在当前行行尾插入文本
  • o:在当前行下方新建一行并进入插入模式
  • O:在当前行上方新建一行并进入插入模式
  • r:替换光标处的一个字符(替换后返回命令模式)
  • R:连续替换字符,直到按下 ESC 键
  • s:从光标位置开始替换指定数目的字符
  • S:删除指定行数并用输入内容替换
  • ncw 或 nCW:修改指定数目的单词
  • nCC:修改指定数目的行

删除命令(二)

  • ndw 或 ndW:删除从光标开始向右的 n 个单词
  • do:删除从光标到当前行首
  • d$:删除从光标到当前行尾
  • ndd:删除当前行及其后的 n-1 行
  • x 或 X:删除一个字符(x 删除光标后字符,X 删除光标前字符)
  • Ctrl+u:在插入模式下删除刚刚输入的文本

搜索与替换命令

  • /pattern:从光标位置向文件末尾搜索 pattern
  • ?pattern:从光标位置向文件开头搜索 pattern
  • n:沿同一方向重复上一次搜索
  • N:沿反方向重复上一次搜索
  • :s/p1/p2/g:将当前行中所有 p1 替换为 p2
  • :n1,n2s/p1/p2/g:将第 n1 至 n2 行内所有 p1 替换为 p2
  • :g/p1/s//p2/g:将整个文件中所有 p1 全局替换为 p2

选项设置

  • all:列出所有选项的当前设置情况
  • term:设置终端类型
  • ignorance:搜索时忽略大小写
  • list:显示制表符(Ctrl+I)和行尾符号($)
  • number:显示行号
  • report:显示由行操作命令所影响的文本行数
  • terse:显示简短的警告信息
  • warn:切换到其他文件时若未保存当前文件则给出提示
  • nomagic:允许在搜索模式中使用特殊字符而未加反斜杠转义
  • nowrapscan:禁止 vi 在搜索到文件两端时自动从另一端继续
  • mesg:允许 vi 显示其他用户通过 write 发送到终端的消息

最后行方式命令

  • :n1,n2 co n3:将第 n1 到 n2 行的内容复制到第 n3 行下方
  • :n1,n2 m n3:将第 n1 到 n2 行的内容移动到第 n3 行下方
  • :n1,n2 d:删除第 n1 到 n2 行之间的内容
  • :w:保存当前文件
  • :e filename:打开文件 filename 进行编辑
  • :x:保存当前文件并退出 vi
  • :q:退出 vi
  • :q!:强制退出 vi(不保存)
  • :!command:执行 shell 命令 command
  • :n1,n2 w!command:将第 n1 到 n2 行的内容作为命令 command 的标准输入并执行(不指定范围则使用整个文件)
  • :r!command:将 shell 命令 command 的输出结果插入到当前光标行下方

寄存器操作

  • "?nyy:将当前行及其下方 n 行复制到寄存器 ? 中(? 为字母,n 为数字)
  • "?nyw:将当前行及其下方 n 个单词复制到寄存器 ? 中
  • "?nyl:将当前行及其下方 n 个字符复制到寄存器 ? 中
  • "?p:将寄存器 ? 中的内容粘贴到光标位置(? 可以是字母或数字)
  • ndd:删除当前行及其下方共 n 行,并将删除内容放入 1 号删除寄存器中。
来源:https://www.jb51.net/os/Unix/1564.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
麒麟系统字体太小看不清如何调整界面字体大小

麒麟系统字体太小看不清如何调整界面字体大小

麒麟系统高分屏字体过小需分层干预:控制中心调整缩放至150%或200%,辅助功能增大文本,命令行设置MateDPI值(2K设200 0,4K设220 0),QT类软件用环境变量QT_DEVICE_PIXEL_RATIO=2,终端取消使用系统等宽字体并改字号,输入法候选字体调至16或18。

时间:2026-07-01 07:42
Win11记事本默认不换行如何设置为自动换行

Win11记事本默认不换行如何设置为自动换行

Windows11记事本默认不自动换行,手动开启仅对当前窗口有效。若要永久启用,可修改注册表,在HKCU Software Microsoft Notepad路径下新建DWORD值fWrap并设为1,或导入含此设置的 reg文件,此后所有新建记事本文件均自动换行显示,无需重复手动操作,一劳永逸。

时间:2026-07-01 07:42
银河麒麟系统时间快几分钟的调整方法

银河麒麟系统时间快几分钟的调整方法

银河麒麟系统时钟快几分钟的解决方法:先用date命令校正系统时间,再执行hwclock--systohc写入硬件时钟;启用systemd-timesyncd并配置阿里云NTP服务器;禁用chronyd避免服务冲突;双系统用户需设置硬件时钟为UTC模式。

时间:2026-07-01 07:41
Win11多屏下设置软件只在特定屏幕打开的方法

Win11多屏下设置软件只在特定屏幕打开的方法

双屏办公时,通过快捷方式添加启动参数、利用Windows窗口位置记忆功能或PowerShell脚本,可让软件自动在副屏打开,免去手动拖拽,提升工作效率。

时间:2026-07-01 07:41
MacBook如何取消菜单栏蓝牙搜索状态

MacBook如何取消菜单栏蓝牙搜索状态

在macOS中,进入系统设置“控制中心”,将蓝牙设为“不显示在菜单栏”即可隐藏图标且功能正常;旧版系统则在蓝牙偏好设置中取消勾选“在菜单栏中显示”。

时间:2026-07-01 07:41
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜