您的位置:首页 > 其它

【vi】与【vim】编辑器详解

2016-04-12 17:40 113 查看
【vi】

vi:Visual Interface

vim:VI iMproved

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

vim模式:

编辑模式(命令模式)

输入模式

末行模式

vim 默认处于编辑模式

模式转换:

编辑--》输入

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

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

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

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

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

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

输入---》编辑:

ESC按键

编辑--》末行

【:】 即可

末行--》编辑:

ESC按键

注意:输入模式和末行模式彼此之间不能直接转换

一、打开文件

# vim /path/to/somefile 如果somefile文件存在,则是打开该文件,如果不存在则是创建该文件进行编辑。

vim +# :打开文件,并定位于第#行

vim + :打开文件,定位最后一行

vim +/PATTERN :打开文件,定位第一次被PATTERN(模式)匹配到的行的行首

二、关闭文件

1、末行模式关闭文件

【:q】 退出

【:wq】保存退出===》【:x】

【:q!】不保存退出

【:w】保存

【:w!】强行保存

2、编辑模式下退出

【ZZ】保存退出

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

1、逐字符移动:

h:左

l:右

j:向下

k:向上

#h:移动#个字符

2、以单词为单位进行移动

w:移至下一个单词的词首

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

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

#w:调至#个单词的词首

...

3、行内跳转:

0:绝对行首

^:行首的第一个非空白字符

&:绝对行尾

4、行间跳转

#G:跳转至第#行

G:跳转至最后一行

在末行模式下,直接给出行号即可跳转

四、翻屏

Ctrl+f:向下翻一屏

Ctrl+b:向上翻一屏

Ctrl+d:向下翻半瓶

Ctrl+u:向上翻半瓶

五、删除单个字符

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

【#x】:删除光标所在处及向后的共#个字符

六、删除命令:d

d命令跟跳转命令组合使

【#d跳转符】:删除跳转符所指定 范围的#个

【#dw】【#de】 【#db】

【dd】删除当前光标所在行

【#dd】删除包括当前光标所在汉在内的#行

末行模式下:

StartADD,EndADDd

【.】表示当前行

【$】最后一行

【+#】向下的#行

七、粘贴命令p

【p】如果删除或者复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;

【P】如果删除或者复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面

八、复制命令 y

用法同d命令

九、修改,先删除内容,再转换为输入模式

【c】:用法同d命令

十、替换:r

【R】:进入替换模式

十一、撤销编辑操作

【u】撤销前一次的编辑操作,(连续u可以撤销此前的n次编辑操作,一般缓存只保存最近50次编辑操作)

撤销最近一次撤销操作(还原最近一次的撤销操作):Ctrl+r

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

【.】重复前一次的编辑操作

十三、可视化模式

【v】按字符选取

【V】按矩形块选取

十四、查找

/PATTERN 从文件首部开始查找安装PATTERN(模式)查找

?PATTERN 从文件尾部开始查找安装PATTERN(模式)查找

n

N

十五、查找并替换

在末行模式下使用s命令

ADDR1,ADDR2s@PATTERN@string@gi

1,$表示全文可以使用%代替

例如:将/etc/yum.repos.d/server.repo文件中的ftp://instructor.example.com/pub替换为http://172.16.0.1/yum

%s@ftp:\/\/instructor\.example\.om\/pub@http:\/172.16.0.1\/yum@g

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

vim FILE1 FILE2 FILE3

【:next】切换至下一个文件

【:prev】切换至前一个文件

【:last】切换至最后一个文件

【:first】切换至第一个文件

退出

【:q】退出当前文件

【:qa】退出全部文件

十七、分屏显示一个文件

Ctrl+w,s(按Ctrl+w按完后再按s按键):水平拆分窗口

Ctrl+w,v垂直拆分窗口

在窗口切换光标:

Ctrl+w,ARROW

:qa关闭所有窗口

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

vim -o :水平分割显示

vim -O :垂直分割显示

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

末行模式下使用w命令

【:w】

:ADDR1,ADDR2w /path/to/somewhere

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

:r /path/to/somefile

二十一、跟shell交互

:! COMMAND

二十二、高级话题

1、显示或取消行号

:set number //显示行号

:set nu //显示行号

:set nonu //关闭行号显示

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

:set ignorecase

:set ic //忽略大小写

:set noignorecase //不忽略大小写

:set noic

3、设定自动缩进

:set autoindent //设定自动缩进

:set ai //设定自动缩进

:set noai //取消...

4、查找到的文本高亮显示或取消

:set hlsearch //设置高亮显示

:set nohlsearch //取消高亮显示

5、语法高亮

:syntax on //开启语法高亮显示

:syntax off //关闭语法高亮显示

二十三、配置文件

vim的配置文件在

/etc/vimrc

~/.vimrc

-----------------------------------------------------附加

【vi】

命令:vi 文件名;对文件可以进行编辑

# vi filename //打开或新建文件,并将光标置于第一行首

# vi n filename //打开文件,并将光标置于第n行首

# vi /pattern filename //打开文件,并将光标置于第一个与pattern匹配的串处

# vi -r filename //在上次正使用vi编辑时发生系统崩溃,恢复filename

# vi filename....filename//打开多个文件,依次编辑

--------------------------------------------------------------------------------------------

保存命令

按ESC键 跳到命令模式,然后:

:w 保存文件但不退出vi

:w file 将修改另外保存到file中,不退出vi

:w! 强制保存,不推出vi

:wq 保存文件并退出vi

:wq! 强制保存文件,并退出vi

q: 不保存文件,退出vi

:q! 不保存文件,强制退出vi

:e! 放弃所有修改,从上次保存文件开始再编辑

之后,回车,ok!

-------------------------------------------------------------------------------------------------

编辑模式中常用命令

x //删除当前字符

dd //删除当前行

u //恢复前一步操作

p //复制之前删除的行

----------------------------------------------------------------------------------------------

编辑模式中其他命令:

h //光标左移一个字符

l //光标右移一个字符

space //光标右移一个字符

Backspace //光标左移一个字符

k或Ctrl p //光标上移一行

j或Ctrl n //光标下移一行

Enter //光标下移一行

w或W //光标右移一个字至字首

b或B //光标左移一个字至字首

e或E //光标右移一个字至字尾

) //光标移至句尾

( //光标移至句首

} //光标移至段落开头

{ //光标移至段落结尾

nG //光标移至第n行首

n //光标下移n行

n- //光标上移n行

n$ //光标移至第n行尾

H //光标移至屏幕顶行

M //光标移至屏幕中间行

L //光标移至屏幕行

0 //(注意是数字零)光标移至当前行首

$ //光标移至当前行尾

------------------------------------------------------------------------------------

屏幕翻滚类命令

Ctrl u:向文件首翻半屏

Ctrl d:向文件尾翻半屏

Ctrl f:向文件尾翻一屏

Ctrl+b;向文件首翻一屏

nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部

------------------------------------------------------------------------------------

插入文本类命令

i :在光标前

I :在当前行首

a:光标后

A:在当前行尾

o:在当前行之下新开一行

O:在当前行之上新开一行

r:替换当前字符

R:替换当前字符及其后的字符,直至按ESC键

s:从当前光标位置处开始,以输入的文本替代指定数目的字符

-------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: