VIM 编辑器的使用

VI Visual Interface  可视化接口 VI编辑器

VIM VI Improved VI编辑器的增强版


VIM 全屏编辑器,模式化编辑器


vim模式

编辑模式(命令模式)

输入模式

末行模式


vim打开文件默认为编辑模式,他们之间可以互相转换

输入模式和末行模式两者之间不能直接转换,都需要经过编辑模式来转换


模式转换

编辑-->输入

i 在当前光标所在字符的前面,转为输入模式

a 在当前光标所在字符的后面,转为输入模式

o 在当前光标所在行的下方,新建一行,并转为输入模式

I 在当前光标所在行的行首,转为输入模式

A 在当前光标所在行的行尾,转为输入模式

O 在当前光标所在行的上方,新建一行,并转换为输入模式


输入-->编辑

ESC 将输入模式转换为编辑模式

编辑-->末行模式

: 进入末行模式只能从编辑模式进入,所以如果处于输入模式,就按ESC退到编辑模式,然后按:键进入末行模式

末行-->编辑

ESC 处于末行模式下有时候需要按两次ESC才能退到编辑模式 注意



使用方法:

vim /path/to/somefile

例: vim /etc/inittab 即用vim 打开/etc/inittab文件


一、打开文件:

vim +numer file 打开文件并定位至number 行number 是数字哈,,得输入一个数字

vim + file打开文件将光标定位至最后一行,

vim +/pattern 打开文件将光标定位至第一次被pattern 匹配到的行


二、关闭文件:

1.末行模式关闭文件

:q  退出(仅限没有编辑该文件才可退出,如果编辑了文件,则会提示文件已被更改)

:wq 保存并退出

:q! 强行退出,不保存

:w  保存

:w! 强行保存

:wq-->:x

2.编辑模式下退出

ZZ 保存退出  注意是大写ZZ小写的不管用哈!


三、移动光标(在编辑模式下)

1.逐字符移动 h左 j下 k上 l右  

左右好理解  上下是 (Japan 日本 ) (Korea 韩国) 地图:日本下韩国上

如果在按这些键之前按了数字,则表示移动该数字所表示的上下左右字符或行

例 3j 则表示向下移动3行


2.以单词为单位移动

w 跳至下一个单词的词首

b 跳至当前或下一个单词的词首

e 跳至当前或下一个单词的词尾

3w则表示向后跳3个单词的词首,你懂得


3.行内跳转

0 跳到绝对行首

^ 跳到行首的第一个非空字符

$ 跳到行尾,绝对行尾

4.行间跳转

#G 跳转至第# (注意#符号为数字)行

G  跳转到最后一行

在末行模式下,直接给出行号,也可实行跳转到该行


四、翻屏

Ctrl+f 向下翻一屏

Ctrl+b 向上翻一屏

Ctrl+d 向下翻半屏downword

Ctrl+u 向上翻半屏 


五、删除单个字符

x  删除光标所在处的单个字符

#x 删除光标所在处及向后的共#(#为数字)个字符


六、删除命令 d

d命令跟跳转命令组合使用:

3dw 从光标所在单词处向后删除3个单词

d^ 从光标所在处删到行首

d$ 光标所在处删到行尾 等等

常用 #dw #de #db

dd 删除光标所在行 #dd 你懂得

末行模式下:

:1,8d 删除1到8行

:.,+5 当前行向下5行

.表示当前行

$表示最后行

+#向下的#行

VIM删除的内容不是立马删除,而是保存到内存中,

而最后一次删除的内容可以被粘贴到其它地方


七、粘贴内容

p(小写) 如果删除或复制为整行内容,则粘贴至光标所在行的下方

如果删除或复制为非整行内容,则粘贴到光标所在字符的后边

P(大写) 如果删除或复制为整行内容,则粘贴至光标所在行的上方

如果删除或复制为非整行内容,则粘贴到光标所在字符的前边


八、复制内容yank 简写为y

此命令用法同d ,此处不作多解释,可参照d命令使用

在末行模式下

:1,5y 则是复制第1行到第5行,


九、修改:先删除内容,再进入输入模式

c 用法同d ,可参考上边,你懂得!!


十、替换:replace 简写r

r 替换当前光标字符

例  r5 即替换当前光标字符为5

R 大写,即进入替换模式,此时输入字符会覆盖其原有字符,

仅限在当前光标后方有字符的情况下


十一、撤消编辑操作undo 简写u

u撤消前一次的编辑操作

连续u命令可撤消此前的n次操作(注意vim只将此前操作保留50次在内存中)

#u直接撤消最近#次编辑操作

还原最近一次撤消的操作(可还原多次,视撤消次数而定) Ctrl+r 


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

.


十三、可视化模式

v小写按字符选取

V大写按矩形选取

先按v 然后输入一个编辑命令如 d 或y 然后按回复即可执行


十四、查找

/pattern 从光标所在处向下查找要匹配的字符

?pattern 从光标所在处向上查找要匹配的字符

n 查找下一个

N 查找上一个


十五、查找并替换

在末行模式下使用s命令

等同sed命令中的查找替换

%表示全文

:1,5 s/by/BY/g 即从1到5行中所有是by字符的替换为大写的by



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

vim file1 file2 file3 虽然多个都打开了,,但是默认只显示第一个文件,

:next 切换至下一个文件

:prev 切换至前一个文件

:last 切换至最后一个文件

:first 切换到第一个文件

:qa or :qall 退出所有编辑文件

十七、分屏显示一个文件

Ctrl+w, s: 先按Ctrl+w松开后再按s键 水平拆分窗口

Ctrl+w, v: 先按Ctrl+w松开后再按v键 垂直拆分窗口

在窗口之间切换光标:

Ctrl+w, 加箭头键即可切换至相应的窗口

:qa 关闭所以窗口

十八、分窗口显示多个文件

vim -o file1 file2... 水平分割显示

vim -O file1 file2... 垂直分割显示

十九、将当前文件中部分内容另存为另外一个文件

在末行模式下使用w命令

:w

:ADDR1,ADDR22 /PATH/TO/SOMEWHERE

二十、将另一个文件的内容填充在当前的文件中

:r /path/to/somefile

二十一、跟shell交互

:! command 


二十二、高级话题

1.显示或取消行号

:set number 简写 :set nu 显示行号

:set nonu 取消行号显示

2.显示忽略或区分字符大小写

:set ignorecase

:set ic 

:set noic

3.设定自动缩进或取消

:set autoindent

:set ai

:set noai

4.查找到的文字高亮显示或取消

:set hlsearch

:set nohlsearch

5.语法高亮

:syntax on

:syntax off

二十三、vim配置文件

/etc/vimrc  全局配置文件,修改此文件里的参数,所有打开vim都被更改

~/.vimrc仅当前用户的vim参数被修改

最后,有一个教程直接在命令行输入 vimtoutor 即可进入教程,但是前提你得会english哈哈



vim 非法退出 注意

如果正在使用vim编辑某文件并且修改了此文件的内容,此时如果突然断开连接,

当再重新打开此文件的时候会提示提醒,即提醒此文件之前被打开过而且是非法

退出的,以下是提示信息

E325: ATTENTION

此处中间内容省略

Swap file ".inittab.swp" already exists!

[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

O 表示只只读方式打开

e 不管怎样也要编辑

r 恢复到此前的编辑

d 删除之前的编辑

q 退出

a 中止

而且还会在用户所编辑的文件的目录里产生一个与文件名相同的隐藏文件.

例如我编辑的是/etc/inittab文件则会产生一个隐藏文件为/etc/.inittab.swp文件

如果想下次编辑不再产生此提示信息,需要手动把此文件删除


end 

Thanks for your watching!