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内建的关键字,进行补齐