vi 的常用命令
以下是一些常用的 vi
文本编辑器指令,可以帮助你在 vi
中进行基本的文本编辑操作:
模式切换
基本上 vi/vim 共分为三种模式,命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)。
模式切换
i
,a
,o
:进入输入模式。a
: 进入输入模式,在光标下一个位置开始输入文本。i
:进入输入模式,在光标当前位置开始输入文本。o
:在当前行的下方插入一个新行,并进入输入模式。
Esc
:退出插入模式回到命令模式。v
:进入可视模式(用于选择文本)。
输入模式
- 字符按键以及 Shift 组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
启动和退出
vi filename
:打开一个文件进行编辑。:w
:保存文件。:q
:退出vi
。:wq
或ZZ
:保存并退出。:q!
:强制退出不保存。
光标移动
h
:左移一个字符。j
:下移一行。k
:上移一行。l
:右移一个字符。0
:移动到行首。$
:移动到行尾。gg
:移动到文件首。G
:移动到文件尾。:n
:跳转到第 n 行。
编辑操作
删除
x
:向后删除一个字符 (相当于 [del] 按键)。X
:向前删除一个字符(相当于 [backspace] 亦即是退格键)。nx
:n 为数字,连续向后删除 n 个字符。如:连续删除 10 个字符,(命令模式) 『10x』。dw
:删除一个单词。dd
:删除当前行。ndd
:n 为数字。剪切光标所在的向下 n 行,如 20dd 则是剪切 20 行(命令模式),用 p/P 可以粘贴。
复制
yy
:复制当前行。nyy
:n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(命令模式)
粘贴
-
p
:在光标后粘贴。p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
撤销重做
u
:撤销上一个操作。Ctrl + r
:重做上一个操作。
搜索和替换
/pattern
:搜索模式,按n
查找下一个,N
查找上一个。?pattern
:同上,搜索方向为向上搜索。:s/old/new/g
:在当前行替换所有出现的old
为new
。:%s/old/new/g
:在整个文件中替换所有出现的old
为new
。
高级操作
:set nu
:显示行号。:set nonu
:隐藏行号。:w [filename]
:将编辑的数据储存成另一个档案(类似另存新档)。:r [filename]
:在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面。:! command
:暂时离开 vi 到指令行模式下执行 command 的显示结果!例如『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息。