文本编辑器 Vim
1. Vim简介与模式
在RHEL中的文本编译器很多,比如图形模式的Gedit、KWrite、OpenOffice等,文本模式的Vi、Vim等。其中Vim编辑器在系统管理,服务器管理方面功能十分强大。Vim是RHEL系统上的全屏幕交互式编辑器。
Vim有3种基本工作模式:
命令模式(Command Mode):用户只需按Esc键,即可以进入Vim命令模式,当然再按一个Esc键就会退出。
插入模式(Insert Mode):按i、o、a或Insert键可以切换到插入模式。
注释:在屏幕的左下角有–插入–字样。这样用户就可以进行文字和数据的输入。
末行模式(Last Line Mode):
用户按“:”键就可以进入末行模式,等待用户输入命令,如Vim、设置编辑环境、查找字符串、列出行号、把编辑缓冲区的内容写到文件中等。末行命令执行完后,Vim自动返回到命令模式,也可以按Esc键回到命令模式。
2. Vim的进入与退出:
(1)进入
1)vim
2)vim file1
如果file1不存在,将建立此文件;如果存在,则,将其复制到一个临时缓冲区,鼠标光标定位在该缓冲区第一行第一列位置。
3)vim +file1
这个命令就和2)不同的就是,鼠标光标定位在文件最后1行第1列的位置上。
4)vim +#file1
这个命令就和2)不同的就是,鼠标光标定位在文件第#行第1列的位置上。
5)vim +/string file1
这个命令就和2)不同的就是,鼠标光标定位在文件中第一次出现在字符串string的行首位置上。
6)vim -r filename
如果在上次正在使用Vim进行编辑时发现系统崩溃,则可以用该命令恢复filename文件。
7)vim filename1 filename2...filename n
打开多个文件,依次进行编辑。
(2)退出
在退出Vim前,按Esc键,确保当前Vim的工作模式为命令模式。
1)w:保存
2)q:退出,当然退出时会被要求确认是否放弃修改内容。
3)wq:保存退出
4)w filename:指定文件另存为filename。
5)x和ZZ:功能与wq等价,注意ZZ前面没有:,且需要大写。
6)q!或quit:放弃刚才编辑内容,强行退出Vim。
3. 基本操作命令
(1)移动光标命令
h:左移
l:右移
j:下移
k:上移
(2)添加文本命令
需要在插入模式下操作,则从命令模式到插入模式
i:在光标当前位置插入文本
a:在光标当前位置前面开始添加文本
I:在光标所在行的下面插入一个空行
A:在光标所在行的行末添加文本
o:在光标所在行的下面插入一个空行
O:在光标所在行的上面插入一个空行
(3)删除文本命令
s: 删除光标后的一个字符,然后进人插入模式。
S:删除光标所在的行,然后进入插入模式。
X:删除光标所在位置的字符。
X:删除光标前的一个字符。
#x:删除#个字符,#表示数字。例如,4x表示删除从当前光标开始的4个字符。
d$:删除从当前光标位置至行尾的内容。
do:删除从当前光标位置至行首的内容。
dd:删除光标所在的当前一行。
#dd:删除#行。例如,4dd 表示删除光标所在行,以及光标下面的3行。
dw:删除一个字。
#dw:删除#个单词。例如,3dw 表示删除包含光标所在单词的3个连续单词,不包含空格。
Ctrl+u:删除插人模式下所输人的文本。
J:清除光标所处的行与上一行之间的空格,把光标行和上一行接在一起。
(4)文本替换命令
替换文本是用新输人的内容替换原文档中的内容。在命令模式下和末行模式下都可以执行文本替换操作。
在命令模式下的Vim中,替换的命令又可以分为取代命令、替换命令和字替换命令。
1)取代命令
r: 用即将输人的一个字符代替当前光标处的字符。
#r:用即将输人的字符取代从当前光标处开始的#个字符。例如,3rS 是将当前光标处的字符及其后的两个字符都取代为"S"。
2)替换命令
s: 用即将输人的文本替换当前光标处的字符。如果只输入一个新字符, s命令与r 命令功能类似,但r命令仅完成替换,s命令在完成替换的同时,工作模式从命令模式转为插人模式。
#s:用即将输人的文本替换从光标所在字符开始的#个字符。例如,3sA 命令将从当前光标开始的3个字符替换为一个字符"A"。
3)字替换命令
cw:替换当前光标所在的字。例如在命令模式下输人cw,接着输人hello,则原先光标处的字被"hello"替换掉。该命令等同于ce命令。
使用末行模式下的替换命令时,要先输人“:”,确保切换到末行模式。末行模式下的替换命令格式为:
[range] s/pattern/string/ [选项]
其中,range用于指定文本中需要替换的范围,缺省代表当前全部文木。例如,[3,6]表示对3~6行的内容进行替换; [3,S]表示对第3行到最后一行的内容进行替换。pattern 指定需要被替换的内容,可以是正则表达式。string 用来替换 pattern 的字符串。
常用选项说明如下。
c:每次替换前都要进行询问,要求用户确认。
e:不显示错误。
g:对指定范围内的字符完成替换,替换时不进行询问。
i:替换时不区分大小写。
示例如下所示。
: s/a/b:将当前行中所以a均用b替换。
:12,23s/a/b/c:将第12-23行中所有a均用b替换,替换前要求用户确认。
: s/a/b/g:将文件中所有a均用b替换。
(5)复制与粘贴命令
复制和粘贴是文本编辑中常用的操作。在Vim中为用户提供了缓冲区,当用户执行复制命令时,所选择的文本会被存入缓冲区中;当下一个复制命令被执行后,缓冲区的内容被刷新。
使用粘贴命令可以将缓冲区的内容添加到文档中的光标所在处。常用的复制和粘贴命令如下。
yw:将当前字的光标所在处到字尾的内容复制到缓冲区。
#yw:复制从当前字开始的#个字到缓冲区。
yy:复制光标所在行到缓冲区。
#yy:复制包含光标所在行的#行数据到缓冲区。例如,3yy 表示将光标所在的该行及下面的两行文字复制到缓冲区。
p:将缓冲区的内容粘贴到当前光标右侧,如果缓冲区内容为一行,则复制到光标下面一行。
P:将缓冲区的内容粘贴到当前光标左侧,如果缓冲区内容为一行,则复制到光标上面一行。所有与“y"有关的复制命令都需要与“p"或“P”命令组合使用才能完成复制与粘贴功能。
(6)查找和替换命令
如同Windows提供的“在找”及“替换”命令菜单样。Vim也提供了在找和替换命令。查找是在末行模式下进行的,用户首先输入“/”或“?”就会切换到末行模式,在文本编辑框的最面显示""或"在其后输人要在找的字符模式即可。利用在找命令可以实现向前或向后搜索指定关键字的功能,并且可以按原搜索方向或反方向继续查找。下面对这些命令进行介绍。
/pattem:光标开始处向文件尾搜索patterm.若遇到文件尾,则从头再开始。
?patterm:从光标开始处向文件首搜索pattern,若遇到文件首,则从文件尾再开始。
/pattern/+#:将光标停在包含pattern 的行后面第#行上。
/patterm/- #:将光标停在包含pattern 的行前面第#行上。
n: 按原搜索方向重复上- -次搜索命令。
N:在相反方向重复上一-次搜索命令。
(7)重复命令
重复命令也是一个经常用到的命令。 在文本编辑中经常 会需要重复一些操作,这时就需要用到重复命令,它可以让用户方便地再执行一次前面的命令。重复命令只能在Vim的命令模式下使用,在该模式下按“.” 键即可。执行一一个重复命令时,其操作结果是针对光标当前位置进行的。
(8)取消命令
取消命令用于取消前一次的误操作,使操作恢复到这种误操作被执行之前的状态。
取消上一个命令有两种形式,在命令模式下输入字符u和U,它们的功能都是取消刚才输人的命令,恢复到原来的状态。大写U命令的功能是恢复到误操作命令前的状态,即如果插人命令后使用U命令,就删除刚刚插人的内容;如果删除命令后使用U命令,就相当于在光标处又插人刚刚删除的内容。
4. 高级命令
(1)多文件编辑命令
(2)在Vim中运行Shell命令
(3)块标记命令
(4)Vim环境设置命令
5.练一下
安装gcc编译器并使用:
(1)挂载虚拟光驱(光盘)到本地配置本地yum源
[AppStream]
name=AppStream
baseurl=file:///dvd/AppStream
gpgcheck=0
enabled=1
[BaseOS]
name=BaseOS
baseurl=file:///dvd/BaseOS
gpgcheck=0
enabled=1
(2)执行yum clean 或者 yum clean all 定期清理缓存
(3)执行yum -y install gcc
(4)检测一下安装的怎么样
OK,安装的可以。