vim编辑器下载与安装
进入vi的命令    1
移动光标类命令    1
屏幕翻滚类命令    2
编辑插入文本类命令    2
删除命令    4
搜索及替换命令    4
选项设置    5
组合命令    6
最后行方式命令    9
寄存器操作    10
进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
filename :打开多个文件,依次进行编辑
移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
wW :光标右移一个字至字首
bB :光标左移一个字至字首
eE :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾

nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
光标移到行首
f  光标移到当前光标位置后面的第一个指定的字符下
光标移到当前光标位置前面的第一个指定的字符下
光标移到当前光标位置后面的第一个指定的字符前
光标移到当前光标位置前面的第一个指定的字符前
光标移动到与当前括号匹配的括号处
:n  光标移动到指定行
按数字:0:移到文章的开头。
G:移动到文章的最后。
按w:光标跳到下个字的开头
按e:光标跳到下个字的字尾
按b:光标回到上个字的开头
按:#l:光标移到该行的第#个位置,如:5l,56l。
跳至指定的行
Ctrl + g列出光标所在行的行号。
#G:例如,15G,表示移动光标至文章的第15行行首
14.光标控制
k:上移 nk 上移n
j:下移 nj 下移n
将光标移到第n行,按下 mk
将光标移到第m行,按下 "ay'k
即将第nm的行存到a寄存器,以此类推,bc........寄存器等
屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
zz  将当前行置于屏幕中央
zt  将当前行置于屏幕顶端
zb  将当前行置于屏幕底端
编辑插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
J  删除换行符
u  取消上次操作
ctr-R  重做
c  修改指定的内容,和d相似
p  将删除缓冲区中的内容插入光标当前的位置
y  复制
vi a b c
:n跳至下一个文件,:e#回到刚才编辑的文件。
比如当前编辑文件为a,:n跳至b,再:n跳至c,:e#回到b,想回到a的话用:ea
打开一个,vi 文件名
然后在vi的命令输入状态下输入
:sp 另外一个文件的路径及文件名
如此就可以在一个窗口打开3个文件了。
可以使用 ctrl 两次按 w
3个文件中切换
:edit  编辑一个新的文件
:previous 打开文件列表中的前一个文件
:next  打开文件列表中的后一个文件
:args  指定一个文件列表
:saveas 给文件改名
:file  给正在编辑的文件改名,但不保存
:split  将窗口分成上下两个窗口
:vsplit 将窗口分成左右两个窗口
:split 文件 为制定的文件打开新窗口
:new  打开新窗口,以及一个无名的缓冲区
:close  关闭窗口
ctr-w w 切换窗口
ctr-w [hjkl] 切换到窗口
ctr-w [HJKL] 移动窗口
:only  只保存当前窗口,其他窗口关闭
ctw-w + 增加当前窗口高度
ctw-w - 减小当前窗口高度
:qall  所有的窗口都退出
:wall  所有的窗口内容都写入文件
取消上一命令(Undo
重复命令(Redo
重复命令只能在命令模式下工作,在该模式下按“.”键既可。执行一个重复命令时,其结果是依赖于光标当前位置的。
取消上一命令(Undo
重复命令(Redo
重复命令只能在命令模式下工作,在该模式下按“.”键既可。执行一个重复命令时,其结果是依赖于光标当前位置的。
fx 往右移动到 x 字元上
Fx 往左移动到 x 字元上
tx 往右移动到 x 字元前
Tx 往左移动到 x 字元前
; 配合 f&t 使用,重复一次
, 配合 f&t 使用,反方向重复一次
/string 往右移动到有 string 的地方
?
string 往左移动到有 string 的地方
n 配合 /&? 使用,重复一次
N 配合 /&? 使用,反方向重复一次
d 删除(delete)
y 复制(yank)
p 放置(put)
c 修改(change)
x      删除光标下的字符("dl"的缩写)
X      删除光标前的字符("dh"的缩写)
D      从当前位置删除到行尾("d$"的缩写)
dw      从当前位置删除到下一个单词开头
db      从当前位置删除到前一个单词的开头
diw    删除光标上的单词(不包括空白字符)
daw    删除光标上的单词(包括空白字符)
dG      删除到文末
dgg    删除到文首
如果你用 "c" 代替 "d",这会变成修改命令;而改用 "y",则变成拷贝命令
「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字
复制
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
daB 删除{}及其内的内容 (在非v可视模式下)
diB 删除{}中的内容
ab 选择()中的内容
ib 选择()中的内容( 不含() )
aB 选择{}中的内容
iB 选择{}中的内容( 不含{} )
·变量定位
gd 转到光标下局部变量的定义处
Gd 转到光标下全局变量的定义处
:r filename 将文件 filename 插入在当前行之下
复制与剪切
xp 交换前后两个字符的位置
ddp 上下两行的位置交换
:g/fred/t$ 拷贝行,从fred到文件末尾(EOF)
删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
u 撤消前一条命令的结果
. 重复最后一条修改正文的命令 
搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
/  向后搜索
?
  向前搜索
``  跳转到前一个位置
`a  跳转到标记为a的位置
ma  将光标的当前位置标记为a
`[  跳转到最后一次修改的起始位置
`]  跳转到最后一次修改的结束位置
`"  跳转到上次编辑该文件时光标最后停留的位置
:s  替换
:substitute 替换
:%s/a/a/c 对所有行替换
:m,ns/a/a/c 对从m到n行替换
rc              用 c 替换光标所指向的当前字符
nrc            用 c 替换光标所指向的前 n 个字符
5rc            用 c 替换光标所指向的前 5 个字符
x              删除光标所指向的当前字符
nx              删除光标所指向的前 n 个字符
3x              删除光标所指向的前 3 个字符
dw              删除光标右侧的字
ndw            删除光标右侧的 n 个字
3dw            删除光标右侧的 3 个字
db              删除光标左侧的字
ndb            删除光标左侧的 n 个字
5db            删除光标左侧的 5 个字
dd              删除光标所在行,并去除空隙
ndd            删除 n 行内容,并去除空隙

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。