LINUX VI

image.png

模式

命令模式

使用 vi 打开文件默认的就是,命令模式。
通常在命令模式下,常用的操作有如下一些:

命令模式 —— 光标移动
h(←)                光标左移一个字符  
j(↓)(ctrl+n)        光标下移一行
k(↑)(ctrl+p)        光标上移一行  
l(→)                光标右移一个字符 
n+space             光标后移n个字符

w           光标向右移动到下一个单词词首,标点符号算一个单词
b           光标向左移动到下一个单词词首,
e           光标向右移动到单词的尾部

ctrl+f      向下翻一屏
ctrl+b      向上翻一屏
ctrl+u      向下翻半屏
ctrl+d      向上翻半屏

0(Home)     光标移动到行首
$(End)      光标移动到行尾

H           移动光标到当前屏幕的第一行行首
M           移动光标到当前屏幕的中间行行首
L           移动光标到当前屏幕的最后一行行首

n+enter     从当前行下移n行,光标置于行首
G           到文档最后一行位置
n+G         光标移动第n行
n+          光标下移n行
n-          光标上移n行
n$          给光标移动到n行的尾部
gg          光标移动到文档第一行

命令模式 —— 编辑
r           替换光标处的单个字符
R           从光标处开始替换字符,直到按esc退出替换
x(Del)      删除光标右边的一个字符
X           删除光标左边的一个字符
d+0         从当前光标位置删除至行首
d+$         从当前光标位置删除至行尾
d+w/e       删除光标右边的一个单词
d+W/E       删除光标左边的一个单词
n+d+w       从光标所在位置开始向右删除n个单词
d+n+d       从光标所在行开始删除n行

dd              剪切光标所在行
n+dd            从光标所在行开始剪切n行
yy              复制当前行
n+yy            复制从当前行开始的n行
p(小)           在当前光标的下方粘贴内容
P(大)           在当前光标行的上方粘贴内容   
:n1,n2 co n3    复制n1行开始到n2行的内容粘贴到n3行下方
:n1,n2  m n3    移动n1行开始到n2行的内容到n3行下方
u               撤销

?  从光标处往上查找  ?china  从光标处往上查找china字符串
/  从光标处往下查找  /word   从光标处往下查找word字符串
n  同方向重复上一次搜索
N  反方向重复上一次搜索

:s/word1/word2/             将光标所在行的第一个word1替换为word2
:s/word1/word2/g            将光标所在行所有的word1替换为word2
:n1,n2s/word1/word2/        将文档中n1行到n2行的第一个word1替换为word2
:n1,n2s/word1/word2/g       将文档中n1行到n2行的所有word1替换为word2
:n1,$s/word1/word2/         将文档中n1行到最后一行的每一行第一个word1替换为word2
:n1,$s/word1/word2/g        将文档中n1行到最后一行的所有word1替换为word2
:%s/word1/word2/g           将文档中所有的word1替换为word2
:g/word1//s/word2/g         将文档中所有的word1替换为word2

命令模式 —— 文件操作

:w              保存文档  
:w [filename]   另存为
:q              退出文档  
:q!             强制退出  
:wq             保存退出 

输入模式

在命令模式下使用如下任意一个命令均可进入到输入模式

i     在光标所在位置的前面开始插入
I     在光标所在行的行首开始插入
a     在光标所在位置的后面开始插入  
A     在光标所在行的行尾开始插入
o     在光标所在位置的下一行开始新开一行插入
O     在光标所在位置的上一行开始新开一行插入