VI 全屏编辑器用法
全屏编辑器有三个模式,分别为:
- 编辑模式:按键具有编辑文本功能(默认打开进入编辑模式)
- 输入模式:按键本身意义
- 末行模式:接受用户输入指令
-
打开文件:
vi +#
打开文件,并定位于第 # 行
vi +
打开文件,并定位至最后一行
vi +/PATTERN
打开文件,并定位至第一次被 PATTERN 匹配到的行的行首 -
关闭文件:
- 末行模式:
:q
退出
:wq 或 :x
保存并退出
:q!
不保存并退出
:w
保存
:w!
强行保存 - 编辑模式
ZZ
保存并退出
- 末行模式:
-
编辑模式 转为 输入模式
a 在当前光标所在字符的前面,转为输入模式
i 在当前光标所在字符的后面,转为输入模式
o 在当前光标所在行的下方,新建一行,并转为输入模式
O 在当前光标所在行的上方,新建一行,并转为输入模式
I 在当前光标所在行的行首,转为输入模式
A 在当前光标所在行的行尾,转为输入模式 -
输入模式 转为 编辑模式:ESC
-
编辑模式 转为 末行模式:键入:
-
末行模式 转为 编辑模式:按两次 ESC
编辑模式
-
移动光标
- 字符
h 左; j 下; k 上; l 右 - 单词
w 移至下一个单词的词首 - 行内
0 绝对行首
^ 行首的第一个非空白符
$ 绝对行尾 - 行间
G 文章末尾
3G/3gg 第三行
gg 文章开头 - 翻屏
ctrl+f/b 下一屏/上一屏
- 字符
-
删除&替换 单个字符
x 删除光标位置字符
3x 删除光标开始3个字符
r 替换光标位置字符 -
删除命令:d
dd 删除一行
3dd 删除3行
dw 删除一个单词 -
复制粘贴&剪切
yw 复制一个单词
yy 复制一行
p 粘贴至下一行
P 粘贴至上一行删除命令配合粘贴命令就是剪切
-
撤销&重做
u 撤销
ctrl+r 重做 撤销的操作
. 重复上一步的操作
末行模式
-
设置 set
:set nu
设置显示行号
:set nonu
设置不显示行号
:set readonly
设置为只读模式 -
/ 查找
: /PATTERN
从光标位置向下查找字符串 PATTERN,并将光标定位到 PATTERN 所在行行首
/PATTERN
从光标位置向下查找字符串 PATTERN,将光标直接定位到 PATTERN 所在位置
?PATTERN
从光标位置向上查找字符串 PATTERN,并将光标定位到 PATTERN 所在行行首
n,N 在匹配到字符串后,按 n 可继续向下查找,按 N 向上查找 -
查找并替换 s
语法:-s/str1/str2/gi- 代表查找范围
n 行号
. 当前光标所在行
+n 偏移n行
$ 末尾行 $-3 倒数第三行
% 全文s 表示命令查找并替换,也可以是其它命令,例如:d 删除
/ 或 @ 或 # 边界字符
g 一行内全部替换
i 忽略大小写例如:
:1,$s/after/before/gi
从第一行到最后一行查找字符串 after 并全部替换为 before,且忽略大小写
:%s/after/before/gi
同上
:1,+2d
删除1~3行 -
! 执行命令
例如:
:! ls -l /usr
可以暂时退出编辑器并执行命令ls -l /usr