VI 编辑器
Vi编辑器有三种模式:命令模式、编辑模式和底线模式
三种模式的切换方式如图 :
1、vi 文件名,打开文件(文件不存在则创建),进入命令模式,命令模式不能编辑文件
2、按 i/I/a/A/o/O中的一个进入编辑模式(屏幕下方出现 --INSERT-- ,可以进行文件编写)
3、按ESC键从编辑模式退出到命令模式
4、在命令模式同时按 shift 和 :,进入底线模式(屏幕下方出现 :,可以输入命令)
从命令模式进入到编辑模式:
i : 在当前光标前插入
a : 当前光标后插入
I : 在光标所在行首插入(第一个非空白字符前)
A : 在光标所在行末插入
o : 在光标所在行下面新增一行(并进入编辑模式)
O : 在光标所在行上方新增一行(并进入编辑模式)
命令模式下的操作:
复制:
yy : 复制光标所在行
nyy :复制光标所在行开始往下共n行
y0 或者 y^ : 复制光标前一个字符到行首的所有字符
y$ : 复制光标位置开始到行末的所有字符
y1G : 复制光标所在行开始到首行
yG : 复制光标所在行开始到最后一行
剪切或删除:
dd : 删除或剪切当前行
ndd : 删除或剪切当前行起共n行
d0 : 删除或剪切光标前一个字符到行首
d$ : 删除或剪切光标位置起到行末
d1G : 删除或剪切光标行起到首行
dG : 删除或剪切光标行起到末行
x : 删除或剪切当前光标位置字符,向后,类似Delete
X : 删除或剪切当前光标位置前一个字符,向前,类似Backspace
粘贴:
p : 在光标所在位置后面粘贴
P (大写): 在光标所在位置前面粘贴
np : 在光标所在位置后面粘贴n次
nP : 在光标所在位置前面粘贴n次
光标移动:
gg或者1G : 移动光标到首行
G :移动光标到最后一行
nG :移动光标到第n行
n+: 光标下移n行
n-: 光标上移n行
space: 光标右移一个字符
Backspace: 光标左移一个字符
Enter: 光标下移一行
上下左右 :k j h l
撤销与恢复:
u : 撤销上一个编辑操作 (简单理解为Undo)
U : 行撤销,撤销所有在前一个编辑行上的操作(简单理解为Undos)
ctrl + r : 恢复,即回退前一个命令 (简单理解为Redo)
. (是的,这个命令就是英文的 . ) : 继续执行上一个动作( 简单理解为doAgain)
屏幕翻页 :
Ctrl+u : 向上翻半屏
Ctrl+f : 向下翻一屏
Ctrl+d : 向下翻半屏
Ctrl+b : 向上翻一屏
底线模式的操作:
查找替换:
/word : 搜索word(向下),按 n 继续查找
?word : 搜索word(向上),按 n 继续查找
:s/Jobs/Cook/ : 替换当前行第一个 Jobs 为 Cook
:s/Jobs/Cook/g : 替换当前行所有 Jobs 为 Cook
:s/Jobs/Cook/gc : 替换当前行所有 Jobs 为 Cook ,替换前询问
:1,$s/Jobs/Cook/ : 替换第1行开始到最后一行中每行第一个 Jobs 为 Cook
:n,ms/Jobs/Cook/ : 替换第 n行开始到第m行中每行的第一个 Jobs 为 Cook
:n,$s/Jobs/Cook/g : 替换第n行开始到最后一行中每一行所有 Jobs 为 Cook
行号:
:set nu : 显示行号
:set nonu : 取消行号
保存退出:
:w : 保存当前文件
:w! : 强制保存
:wq : 保存退出
:wq! : 强制保存退出
:q : 直接退出,如已修改会提示是否保存
:q! : 不保存直接退出