首页 > 代码库 > vim编辑器

vim编辑器

全屏文本编辑器

vi:Visual Interface,Bill Joy,S.U.N  sparc SUNOS(Solaris) 

vim: VI iMproved


模式化编辑器:

编辑模式(命令模式)-->默认的工作模式

末行模式

插入模式(输入模式)

替换模式

可视化模式


一、vi/vim的打开方式:

1.vi/vim:打开vi/vim的界面

2.vim file:file存在,则打开并将光标默认放置在第一行第一个字符;

file不存在,则以新文件的方式打开,若保存,则文件被创建;若不保存,文件消失;

3.vim +# file:指定在打开文件的时候,将光标定位在第#行行首;如果定位的行数比整个文档的行还要大,则光标停留在最后一行的行首;

4.vim + file:直接将光标定位在文档的最后一行行首;

5.vim +/PATTERN/:打开文件,并且将光标定位至首次被PATTERN匹配的行的行首位置;即只完成首次匹配。


二、vim的关闭方式:

末行模式的关闭:

:q 直接关闭vim编辑器,不保存修改内容;

:q! 强制退出但不予保存;

:w 保存修改的内容;

:wq 保存修改的内容并关闭vim编辑器;

:wq! 对于root用户来说,一些只读文件的修改可以强制保存并退出;

:w! 强制保存

编辑模式的关闭:

ZZ:保存并退出;

ZQ:不保存退出;


三、在vim的编辑模式中,移动光标:

1.逐字符移动

1)ARROW

2)h:光标向左;

  j:光标向下;

  k:光标向上;

  l:光标向右;

2.逐字移动

w:移动到下一个字的字首;

e:移动到下一个字的字尾;

b:移动到上一个字的字首;

3.行内跳转:

0:绝对行首;

^:相对行首;

$:绝对行尾;

4.行间跳转:

#G:直接将光标移动至第#行;

G:直接将光标移动至文档的最后一行;

gg:直接将光标移动至第一行;

    

  末行模式中光标移动:

:# 直接将光标移动至第#行;

:1 直接将光标移动至第一行;

:$ 直接将光标移动至文档的最后一行;


四、翻屏

Ctrl+f:向下翻一屏

Ctrl+b:向上翻一屏

Ctrl+d:向下翻半屏

Ctrl+u:向上翻半屏


五、逐字符删除:

x:删除光标所在位置的单个字符;

X:删除光标所在位置左侧的单个字符;


六、编辑模式中的万能删除命令;

d:删除光标经过的所有内容;

dh、dj、dk、dl、dARROW、dw、de、db、dG、dgg

dd:删除光标所在行;

在末行模式下:

:d:删除光标所在行

:#d:删除第#行

:m,+nd:删除从第m行开始,再经过n行的所有行;

:m,nd:删除从第m行开始到第n行结束的所有行;

:.,$d:删除从光标所在行到文档的最后一行;

.:表示当前光标所在行;

$:文档的最后一行


七、编辑模式中的万能粘贴命令:

p(lower):向右向下进行粘贴;

P(upper):向左向上进行粘贴;

末行模式下:

p


八、编辑模式中的万能复制命令:

y:复制光标经过的所有内容;

用法与d命令相同。

yy:复制光标所在行;


九:模式的切换:

1.从编辑模式到末行模式:

: 输入命令

/和? 进行查找,n和N,n表示顺序查找,N表示逆序查找;

/:自上而下

?:自下而上

2.从末行模式到编辑模式:

ESC键

Enter键

Backspace键

3.从编辑模式到输入模式:

I:将光标移动至行首并进入输入模式;

i:在光标所在位置的前面插入字符;

A:将光标移动至行尾并进入输入模式;

a:在光标所在位置的后面插入字符;

O:在光标所在行的上面插入新行;

o:在光标所在行的下面插入新行;

cc:删除整行内容之后,进入输入模式;

C:从光标所在位置删除至行尾,进入输入模式;

s:删除光标所在位置的一个字符,进入输入模式;

S:删除整行内容之后,进入输入模式;

4.从输入模式到编辑模式:

ESC键

5.从编辑模式到替换模式:

R:进入替换模式

6.从替换模式到编辑模式:

ESC键

7.从编辑模式到可视化模式:

v:按照字符为单位进行矩形选取;

V:按照行为单位进行矩形选取;

在选择之后可以执行复制或删除的操作;

只要完成操作,就返回到编辑模式;


注意:所有的模式切换必须经由编辑模式,两种非编辑模式之间无法直接进行切换;


十、替换命令

r:替换光标所在位置的一个字符;


十一、撤销编辑操作:

u:撤销一次此前的编辑操作;

Ctrl+r:撤销最近的一次撤销操作;


十二、重复之前的一次编辑操作:

.


十三、特殊的末行命令:

1.显示和取消行编号:

:set number --> :set nu

:set nonumber --> :set nonu

2.开启或关闭字符大小写的区分:

:set ignorecase --> :set ic

:set noignorecase --> :set noic

3.开启或关闭自动缩进功能:

:set autoindent --> :set ai

:set noautoindent --> :set noai

4.开启或关闭查找高亮显示:

:set hlsearch

:set nohlsearch --> :nohl

5.开启和关闭语法着色:

:syntax on

:syntax off


十四、vimtutor


回顾:

touch、nano、cat、tac、head、tail、more、less、cp、mv

vi编辑器


十五、使用vim编辑多个文件

1) vim FILE1 FILE2 FILE3 ...

:next  查看或编辑后一个文档的内容

:prev  查看或编辑前一个文档的内容

:first 查看或编辑第一个文档的内容

:last  查看或编辑最后一个文档的内容


2) vim -o|-O FILE1 FILE2 FILE3 ...

-o:水平分屏显示多个文件

-O:垂直分屏显示多个文件


Ctrl+w, ARROW

#Ctrl+w, ARROW


Ctrl+w, s  将一个文件水平分屏显示

Ctrl+w, v  将一个文件垂直分屏显示


:qa

:wa


十六、将其他文件中的内容填充至当前文件中

:r /PATH/TO/SOMEFILE


十七、跟shell交互

:!COMMAND


十八、部分另存为

:w /PATH/TO/SOMEFILE

:m,nw /PATH/TO/SOMEFILE

:m,+nw 

:.,$w 


vim编辑器