Vi(Vim)是一款功能强大的文本编辑器,广泛应用于Linux和Unix系统中,掌握其快捷命令能极大提升编辑效率,以下为Vi的常用快捷命令大全,分为普通模式、插入模式、命令行模式、可视模式及高级操作五部分,并辅以表格说明。

在普通模式下,移动光标的命令是基础。h
、j
、k
、l
分别控制光标左、下、上、右移;w
、b
、e
按单词移动,0
(数字零)移至行首,移至行尾;gg
跳至文件首行,G
跳至末行,nG
跳至第n行,删除操作中,x
删除当前字符,dd
删除整行,ndd
删除n行;d$
删除至行尾,d^
删除至行首,复制粘贴方面,yy
复制整行,nyy
复制n行,p
粘贴到光标后,P
粘贴到光标前,撤销与重做通过u
和Ctrl+r
实现,切换当前字符大小写。
插入模式下,i
在光标前插入,a
在光标后插入,o
在下一行插入新行,O
在上一行插入新行;I
跳至行首插入,A
跳至行尾插入,退出插入模式需按Esc
返回普通模式。
命令行模式下,w
保存文件,q
退出,wq
或x
保存并退出,q!
强制退出不保存;s/old/new
替换当前行首个匹配项,%s/old/new/g
全局替换;set nu
显示行号,set nonu
隐藏行号,syntax on
开启语法高亮,文件操作中,e filename
打开文件,saveas newname
另存为,r filename
读取文件内容至光标后。
可视模式下,v
进入字符选择,V
进入行选择,Ctrl+v
进入块选择;选中后可配合d
删除、y
复制、c
剪切并进入插入模式。

高级操作包括多窗口编辑(split
水平分割,vsplit
垂直分割,Ctrl+w+w
切换窗口)、宏录制(qa
开始录制宏a,q
停止,@a
执行宏)、标签跳转(gd
跳转至定义处,Ctrl+o
返回上位置,Ctrl+i
前进)以及自动补全(Ctrl+x Ctrl+f
补全文件名,Ctrl+x Ctrl+l
补全行)。
以下是常用命令的简要总结表格:
模式 | 命令 | 功能 |
---|---|---|
普通模式 | h/j/k/l | 光标左/下/上/右移 |
dd/ndd | 删除当前行/n行 | |
yy/nyy | 复制当前行/n行 | |
u/Ctrl+r | 撤销/重做 | |
插入模式 | i/a/o/O | 光标前/后/下/上插入 |
命令行模式 | w/:q/:wq | 保存/退出/保存并退出 |
%s/old/new/g | 全局替换 | |
可视模式 | v/V/Ctrl+v | 字符/行/块选择 |
相关问答FAQs
Q1: 如何在Vi中同时编辑多个文件?
A1: 使用命令行模式的split filename1
和vsplit filename2
可分别水平和垂直打开新文件窗口,通过Ctrl+w+w
在窗口间切换,q
关闭当前窗口。split test.txt
打开新窗口编辑test.txt,Ctrl+w+w
切回原窗口。

Q2: 如何在Vi中批量替换特定字符串?
A2: 在命令行模式下使用s
命令,替换当前行首个匹配项用s/old/new
,全局替换当前文件用%s/old/new/g
,若需确认每个替换可加c
参数(%s/old/new/gc
),将文件中所有“error”替换为“warning”需输入:%s/error/warning/g
。