9. 你对vi的命令的了解?包括插入、替换、复制、删除、粘贴、查找、正则查找替换, 保存退出, 撤销,恢复,显示行号。
移动光标:(在编辑模式下)
h:左移;
j:下移;
k:上移,
^:光标移动到行首;
$(0):光标移动到行尾;
gg:光标移动到首行;
G:光标移动到尾行;
ctrl+f:向前翻页;
ctrl+b:向后翻页;
ctrl+u:向上翻半页;
ctrl+d:向下翻半页;
插入有多种方式:(执行插入命令进入插入模式)
i:当前光标前插入;
a:当前光标后插入;
I:行首插入;
A:行尾插入;
o:在当前行的下方插入一个空行。
O: 在当前行的上方插入一行。
替换: (在编辑模式下)
r: 替换光标所在位置的字符,用接着输入的字符。
R:多字符替换, 从光标所在字符开始,被输入的字符一一替换,其后的字符,知道按下ESC。
复制:(在编辑模式下)
yw: 复制光标所在位置的一个字;
nyw:复制光标所在位置及其后的n-1个字。
yy: 复制光标所在的行。
nyy:复制光标所在的行,及其后的n-1行。
n,myy: 复制n到m行。
删除:(在编辑模式下)
x: 删除光标所在位置的单个字符;
nx:删除光标所在位置,及其后的n-1个字符。
X: 删除光标所在位置前的一个字符。
nX:删除光标所在在位置前的n个字符。
粘贴:(在编辑模式下)
p: 粘贴。(将粘贴板中内容复制到光标当前所在的位置。包括复制、删除的的内容)。可以多次粘贴。
查找: (在编辑模式下)
/正则表达式:查找正则表达式匹配的的模式字符串。(匹配字符串会高亮显示)
n: 下一个匹配的模式串。
p:上一个匹配的模式串。
模式替换:(编辑模式)
s/模式/替换串:替换当前行的模式串。
n,ms/模式/替换串:替换从n行到m行的模式串。(不包括模式是子串的)
n,ms/模式/替换串/g:替换从n行到m行的模式串。(包括模式是子串的)
0,$s/模式/替换串: 整篇文档替换。
0,$s/模式/替换串/g: 整篇替换。
保存退出:
:w [文件名] 保存[到文件名] 文件名可选。
:wq 保存并退出。
:q! 退出而不保存。
其他的高级特性:
:setnu 设置显示行号
:setnonu 取消行号的显示
u 撤销上一次操作(从一个插入命令进入插入模式,到离开插入模式视为一个操作)
U 仅撤销最近的上一次操作。(undo)
ctr+r 恢复上一次的撤销操作。 (redo)
在插入模式下:
ctrl+p 关键字补齐
ctrl+n 关键字补齐
.(dot) repeat the previous opteration. 重复上一个操作。
例如:可以录制一个编辑宏,即执行一个插入命令,插入要插入的文本,ESC 进入命令模式,然后执行.
ctrl-v 进入选择模式,配合方向键,可以将区域块选中。 然后配后编辑命令,可以对块操作。
代码格式化:
gg=G 格式化全文
== 自动缩进当前行
n= 格式化从当前行开始的n行
v= 选择上下的行格式化。
移动光标:(在编辑模式下)
h:左移;
j:下移;
k:上移,
l:右移。
//当然方向键也可以。
^:光标移动到行首;
$(0):光标移动到行尾;
gg:光标移动到首行;
G:光标移动到尾行;
:行号: 光标移动到指定行号的行。
ctrl+f:向前翻页;
ctrl+b:向后翻页;
ctrl+u:向上翻半页;
ctrl+d:向下翻半页;
插入有多种方式:(执行插入命令进入插入模式)
i:当前光标前插入;
a:当前光标后插入;
I:行首插入;
A:行尾插入;
o:在当前行的下方插入一个空行。
O: 在当前行的上方插入一行。
替换: (在编辑模式下)
r: 替换光标所在位置的字符,用接着输入的字符。
R:多字符替换, 从光标所在字符开始,被输入的字符一一替换,其后的字符,知道按下ESC。
复制:(在编辑模式下)
yw: 复制光标所在位置的一个字;
nyw:复制光标所在位置及其后的n-1个字。
yy: 复制光标所在的行。
nyy:复制光标所在的行,及其后的n-1行。
n,myy: 复制n到m行。
删除:(在编辑模式下)
x: 删除光标所在位置的单个字符;
nx:删除光标所在位置,及其后的n-1个字符。
X: 删除光标所在位置前的一个字符。
nX:删除光标所在在位置前的n个字符。
粘贴:(在编辑模式下)
p: 粘贴。(将粘贴板中内容复制到光标当前所在的位置。包括复制、删除的的内容)。可以多次粘贴。
查找: (在编辑模式下)
/正则表达式:查找正则表达式匹配的的模式字符串。(匹配字符串会高亮显示)
n: 下一个匹配的模式串。
p:上一个匹配的模式串。
模式替换:(编辑模式)
s/模式/替换串:替换当前行的模式串。
n,ms/模式/替换串:替换从n行到m行的模式串。(不包括模式是子串的)
n,ms/模式/替换串/g:替换从n行到m行的模式串。(包括模式是子串的)
0,$s/模式/替换串: 整篇文档替换。
0,$s/模式/替换串/g: 整篇替换。
保存退出:
:w [文件名] 保存[到文件名] 文件名可选。
:wq 保存并退出。
:q! 退出而不保存。
其他的高级特性:
:setnu 设置显示行号
:setnonu 取消行号的显示
u 撤销上一次操作(从一个插入命令进入插入模式,到离开插入模式视为一个操作)
U 仅撤销最近的上一次操作。(undo)
ctr+r 恢复上一次的撤销操作。 (redo)
在插入模式下:
ctrl+p 关键字补齐
ctrl+n 关键字补齐
.(dot) repeat the previous opteration. 重复上一个操作。
例如:可以录制一个编辑宏,即执行一个插入命令,插入要插入的文本,ESC 进入命令模式,然后执行.
ctrl-v 进入选择模式,配合方向键,可以将区域块选中。 然后配后编辑命令,可以对块操作。
代码格式化:
gg=G 格式化全文
== 自动缩进当前行
n= 格式化从当前行开始的n行
v= 选择上下的行格式化。