二、vim编辑器模式分类

1.命令模式

移动光标命令

字符移动

h->向左移动一个字符(对应向左箭头)

nh->向左移动n个字符

l->向右移动一个字符(对应向右箭头)

nl->光标移到n个字符

space->向右移动一个字符

nspace->向右移动n个字符

Backspace->光标左移一个字符

nBackspace->向左移动n个字符

字移动

w->右移一个字

nw->右移n个字

b->左移一个字

nb->左移n个字

e->右移一个字且至字尾

ne->右移n个字且至字尾

行移动

j->向下移动一行(对应向下箭头)

nj->向下移动n行

k->向上移动一行(对应向上箭头)

nk->向上移n行

Ctrl+p->光标上移一行

Ctrl+n->光标下移一行

Enter->光标下移一行

nEnter->向下移n行

nG->光标移到第n行首

n+->光标下移n行

n->光标上移n行

n$->光标移到第n行尾

0->光标移到当前行首

(->光标移到当前行首

$->光标移到当前行尾

)->光标移到当前行尾

^->光标移到当前行首

}->光标移到段落开头

{->光标移到段落结尾


跳转命令

G->光标定位到当前文档最后一行首

H->光标移到屏幕顶行

M->光标移到屏幕中间行

L->光标移到屏幕后行

n shift+g->跳转到第n(这里的n表示数字)行

shift+g->跳转到文件最后一行首


删除命令

删除字符

x->删除光标所在的一个字符

nx->删除光标所在的字符及后n-1个字符

X->删除光标前一个字符

nX->删除光标前n个字符

D->删除光标所在位置到行尾字符

删除字

dw->删除一个字

ndw->删除n个字

d0->删至行首

d$->删至行尾

删除行

dd->删除光标所在行

ndd->删除当前行及后n-1行

删除块

d(->从光标位置删除到上一行首

d)->从光标位置删除到下一行首

d{->从光标位置删除到上一段开始所有字符

d}->从光标位置删除到下一段开始所有字符

d回车->删除当前行及下一行


复制命令

复制字符

yl->将光标所在的字符保存到寄存器

nyl->将当前光标及下n个字符保存到寄存器

复制字

yw->将光标所在之处到字尾内容保存到寄存器

nyw->将当前光标及下n个字保存到寄存器

复制行

yy->复制当前行到寄存器

nyy->将当前行及下n行内容保存到寄存器

复制块

先按v然后按方向键选择区域,再按y即可选中

y(->当前光标到上一句开始

y)->当前光标到下一句结束

y{->复制到上一段的开始

y}->复制到下一段的开始

y回车->复制当前行及下一行


剪切命令

dd->将当前行内容删除并保存到寄存器

ndd->将当前行及下n行内容删除并保存到寄存器


粘贴命令

p->将寄存器中的内容放到光标位置


撤销命令

u->将上次修改进行撤销


替换命令

r->替换光标所在的字符

R->替换光标所在的字符及后续字符,esc退出

s->删除字符,以输入文本代替

ns->删除n个字符,以输入文本代替

S->删除指定行,并以输入文本代替

nS->删除n行,以输入文本代替


更改命令

更改字符

cl->修改光标所在字符

ncl->修改光标所在字符及n-1个字符

更改字

cw->修改光标所在的字

ncw->修改n个字

更改行

cc->修改光标所在行

ncc->修改n行


屏幕滚动命令

Ctrl+u->向上翻半屏

Ctrl+d->向下翻半屏

Ctrl+f->向下翻一屏

Ctrl+b->向上翻一屏


显示行号命令

Ctrl+g->显示光标所在行号


保存命令

ZZ->保存文件内容


重复命令

.->重复执行上一次的命令



2.文本输入模式

进入输入模式命令

i->在光标前输入

I->在当前行首输入

a->在光标后输入

A->在当前行尾输入

o->在当前行之下新开一行

O->在当前行之上新开一行


删除输入内容命令

Ctrl+u->删除输入模式下所输入的内容



3.末行模式

搜索命令

/字符串->从当前光标向下搜索指定字符串

?字符串->从当前光标向上搜索指定字符串


重复搜索命令

n->这里是英文字符n,向下搜索

N->这里是英文字符N,向上搜索


替换命令

s/原字符串/目标字符串/->将当前行第一个原字符串替换为目标字符串

s/原字符串/目标字符串/g->将当前行所有原字符串替换为目标字符串

n1,n2s/原字符串/目标字符串/->将n1行到n2行中每行的第一个原字符串替换为目标字符串

n1,n2s/原字符串/目标字符串/g->将n1行到n2行所有原字符串替换为目标字符串

n1,$s/原字符串/目标字符串/g->将n1行到最后一行所有原字符串替换为目标字符串

g/原字符串/s//目标字符串/g->将当前文件中所有的原字符串替换为目标字符串

%s/原字符串/目标字符串/g->将当前文件中所有的原字符串替换为目标字符串

自定义分隔符

s#原字符串/#目标字符串/ ->这里的#是分隔符,/表示字符串一部分


复制命令

n1,n2 co n3->将n1到n2之间的内容复制到n3行下

n1,n2 m n3->将n1到n2之间的内容移动到n3行下


删除命令

n1,n2 d->将n1到n2之间的内容删除

%d->删除全部内容

1,$d->删除全部内容


保存命令

w->保存不退出

w!->强制保存不退出

w /文件名 另存为文件名

n1,n2w /文件名 将n1到n2之间的内容另存为文件名

x->保存并退出

q->退出且不保存

q!->强制退出且不保存

wq->保存并退出

wq!->强制保存并退出

e!->放弃所有修改,从上次保存文件开始


行号命令

set nu->显示行号

set nu!->不显示行号

f->显示光标所在行号

set number->显示行号

set nonumber->不显示行号

set number->不显示行号


跳转命令

n->跳转到n行

$->跳转到当前文档最后行首


选项设置

set all->列出所有选项设置情况

set list->显示制表位和行尾标志

set hlsearch->高亮显示执行内容

set hlsearch->关闭高亮显示

set nohlsearch->关闭高亮显示



一、进入vi命令

命令:vi -R 文件名

说明:只读方式打开文件

命令:vi -r 文件名

说明:进到vi上次崩溃

命令:vi +/字符串 文件名

说明:打开文件,并将光标定位到第一个与“字符串”匹配的位置

命令:vi + 文件名

说明:打开文件,并将光标定位到最后一行首

命令:vi +n 文件名

说明:打开文件,并将光标定位到第n行首

命令:vi 文件名

说明:打开或新建文件