vi或vim有三种模式,一般指令模式、编辑模式、末行模式
一般指令模式的指令:
h或向左方向键 #光标向左移动一个字符
j或向下方向键 #光标向下移动一个字符
k或向上方向键 #光标向上移动一个字符
l(小写L)或向右方向键 #光标向右移动一个字符
在hjkl前加数字的话,表示向上下移动几列,向左右移动几个字符
ctrl+f #屏幕向下移动一页
Ctrl+b #屏幕向上移动一页
Ctrl+d #屏幕向下移动半页
ctrl+u #屏幕向上移动半页
+ #光标移动到非空白字符的下一列
- #光标移动到非空白字符的上一列
n<space> #n是个数字,然后再按空白键,光标会向右移动此列的n个字符。
0 或功能键[Home] #移动到此列最前面字符处。
$或功能键[end] #移动到这一列的最后面字符处
H #光标移动到此屏幕上方那一列的第一个字符
M #光标移动到屏幕中央的那一列的第一个字符
L #光标移动到屏幕最后一行的第一个字符
G #移动到这个文件的最后一列
nG #移动到文件的第n列
gg #移动到文件第一列
n<Enter> #n为数字,光标向下移动n列
搜寻与取代:
/word #向光标下边搜寻一个名称为Word的字串。
?Word #向光标上边搜寻一个名称为Word的字串
n #重复前一个搜寻的动作
N #与n搜寻方向相反
:n1,n2s/word1/word2/g #n1与n2为数字,在第n1与n2列之间寻找word1这个字符串并将该字符串取代为word2。
:1,$s/word1/word2/g #整个配置文件的word1替换为word2
:1,$s/word1/word2/gc #整个配置文件的word1替换为word2并在替换之前询问是否进行替换
x #删除后边一个字符
X #删除前边一个字符
nx #向后删除n个字符
dd #删除光标所在的那一列
ndd #n为数字,删除光标所在行之后的n行
d1G #删除光标所在到第一列的所有数据
dG #删除光标所在到最后一列的所有数据
d$ #删除光标所在处,到该列的最后一个字符
d0 #数字0,删除光标所在处到该行首字符
yy #复制光标所在那一行
nyy #复制光标所在的向下n列
y1G #复制光标所在列到第一列的所有数据
yG #复制光标所在列到最后一列的所有数据
y0 #复制光标所在字符到该行行首所有数据
y$ #复制光标所在字符到此行末尾字符所有数据
p #将已复制的数据在光标下一列贴上。
P #与p相反,将已复制的数据在光标上一列贴上
J #将光标所在列于下一列的数据结合成同一列
c #重复删除多个数据
u #复原前一个动作
ctrl+r #重复前一个动作
. #(小数点)重复前一个动作。
编辑模式指令:
i #从当前游标所在处插入
I (大写的i) #在当前所在行的第一个非空白字处开始插入
a #从当前游标所在字符的后面开始插入
A #从当前游标所在行的最后一个非空白字符后面插入
o(小写O)#在当前游标所在的下一行进行插入
O(大写字母) #在当前游标所在行的上一行进行插入
r #取代游标所在的那一个字符一次
R #一直取代游标所在的文字
[Esc] #退出编辑模式,进入一般指令模式
末行模式指令:
:w #保存
:w! #强制保存
:q #退出
:q! #强制退出
:wq #保存退出
:wq! #强制保存退出
ZZ (大写):若档案没有更动,则不存储离开,若档案已经被更动过,则存储后离开
:w [filename] #将编辑的资料存成另一个档案
:r [filename] #在编辑的资料中,读入另一个档案的资料,即在将[filename]中的内容添加到当前游标所在字符后面
:n1,n2 w [filename] #将第n1行到第n2行内容存储成filename文件
:! command #暂时离开vi指令模式下执行command的显示结果,如: ":! ls /home"
vim环境的变更:
set nu #显示行号,设定之后,会在每一行的字首显示该行的行号
set nonu #与set nu 相反,取消行号
一般指令模式下:
v #字符选择,将游标经过的地方进行反白选择
V #列选择,将游标经过的列进行反白选择
ctrl+v #区块选择,可用长方形的方式选择资料
y #将反白的地方复制
d #将反白的地方删除
p #将刚复制的区块,粘贴在游标所在处
:n #编辑下一个文件
:N #编辑上一个文件
:files #列出目前vim开启的所有档案
:sp #同一个文件在一个屏幕上分成两个窗口界面
:sp [filename] #在同一屏幕下开启新窗口并打开文件
ctrl+w j #先按ctrl+w然放开,按j键(或向下方向键),游标进入下方视窗
ctrl+w k #同上,游标进入上方视窗
组合键:
ctrl+x -->ctrl+n #以当前文件的内容文字作为关键字进行补齐
ctrl+x -->ctrl+f #以当前目录内的文件名为关键字,进行补齐
ctrl+x -->ctrl+o #以副档名作为语法补充,以vim内建的关键字,进行补齐