此前编辑脚本一直使用的是nanonano简单易用,但是功能相对较少,故在实际工作中很少使用。

Linux提供了一个非常强大的文本编辑器——VIM编辑器。

这里需要注意的是,VIM编辑器是文本编辑器,它用于处理只包含ASCII码的数据,这和windows操作系统下的文字处理软件诸如wordwps等是不同的,word等文字处理软件能处理非ASCII码编写的文件。

文本编辑器主要分为两种:

1)全屏编辑器:

a) VIVisual Interface (可视化接口)

b)  VIMVisual Interface ImprovedVI的增强版)

c) nano

2)逐行读取编辑器:sed

VIM提供模式化操作,其功能非常强大,它的基本用法为:

# vim [option] [/path/to/somewhere]

如果只输入vim而不给定路径,则编辑的文本将会保存到内存中。

 

一.VIM的三种模式

1使用vim命令打开的模式是默认的模式——编辑模式

编辑模式主要是指可以进行选择、复制、删除等操作的模式

 

2)如果要向文件中输入内容,则需要转换为输入模式,此时绝大多数的键盘操作都会反映成文本内容。

 

3)在文件末尾处进行操作,即为末行模式。所有在编辑模式下能进行的操作,在末行模式下都能进行;一些在编辑模式下不能实现的功能,末行模式也能进行,如查找替换等。

wKioL1OgmLfDrAd9AALvL07zBa8380.jpg 

在输入模式下输入一些简单的内容,然后使用Esc 键进入末行模式,然后使用 键,以及wq FileName保存退出。这样就创建了一个文本文件:

wKiom1OgmQHjgUAAAAEg9RxN2Bw643.jpg 

 

二、模式转换

1. 从编辑模式 --> 输入模式

i: insert,实现在当前光标所在处转换为输入模式

aappend, 实现在当前光标所在处的字符后面转换为输入模式

oopen,实现在当前光标所在行的下方新建一个空白行并转换为输入模式

wKiom1OgmSSB0mayAATW9ONSR3g756.jpg 

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

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

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

wKioL1OgmRPCYaEqAANPbnLrhdg879.jpg 

 

2. 
输入模式-->编辑模式





按下Esc

3. 从编辑模式-->末行模式

键入 (冒号) 即可

4. 


从末行模式--> 编辑模式


按下Esc键(通常需要按下两次)

5. 从输入模式--> 末行模式

无法直接转换,需要先由输入模式转换为编辑

模式,再由编辑模式转换为末行模式。

 wKiom1OgmLGBP-c2AADEsmHRjxU043.jpg

三、实现光标的跳转(编辑模式)

1. 字符间进行跳转:

H:向左移动

L:向右移动

J:向下移动

K:向上移动

跳转键+数字键:表示向某个方向跳N个字符

 

2. 单词间进行跳转:

W:移动到下一个单词的词首

E:移动到下一个单词的词尾,但若光标不在当前单词的词尾,则先跳至当前单词

   的词尾

B:移动到上一个单词的词首,但若光标不在当前单词的词首,则先跳至当前单词

   的词首

 

3. 句子间跳转

 

):跳转至下一句

(:跳转至上一句

 

4. 段落间跳转

}:跳转至下一段

{:跳转至前一段

 

5. 行间跳转

1G 或 gg:跳转至第一行

G:跳转至最后一行

nG:跳转至第n

 

6. 行内跳转

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

$:跳至绝对行尾

0: 跳至绝对行首

 

四、关闭文件

关闭文件通常在末行模式下进行,通常有以下命令可以使用:

保存

退出

wq 保存退出

保存退出

强行进行某操作,如 q! 表示强行退出不保存;w!表示强行保存

 

在编辑模式下,输入ZZ也能保存退出

 

五、打开文件

打开文件的基本命令为:

vim [oprions] /path/to/file

如果想要打开文件,并将光标置于特定的行,可以使用以下命令:

vim +# /path/to/file

如要在打开文件functions的同时,光标跳转至该文件的第10行,可以输入:

# vim +10 functions

wKioL1OgmU6BLj7cAAFK8sBGOv0816.jpg 

 

Vim可以同时打开多个文件,例如再复制两个文件到当前目录里,然后使用vim命令同时打开三个文件:

# cp /etc/fstab ./

# cp /etc/inittab ./

# vim functions fstab inittab

此时当前页面显示的是第一个文件,即functions。如果要切换到下一个文件,可以在末行模式下输入next命令;如果要切换回第一个文件,可以输入first命令;如果要切换至前一个文件,可以使用prev命令;如果要切换至最后一个文件,可以使用last命令。

wKiom1OgmZ3yAvpDAAgXwihyd3s276.jpg 

如果想在同一个屏幕里显示多个文件,则可以使用-o或 -O选项:

# vim -o functions fstab inittab   //水平分割

wKiom1OgmcDhYK99AALiSwVmABg368.jpg 

# vim -O functions fstab inittab//垂直分割

wKioL1Ogma3TjGJ3AARQBy-ikX8415.jpg 

按下Ctrl+W键松开后,再按上下箭头键,可在上下文件中切换;按下左右箭头键,可在左右文件中切换。在末行模式下输入q,则退出光标所在的文件;输入qall则退出所有文件。