02 Linux系统管理―(vi/vim编辑器的使用)

使用vi文本编辑器
配置文件是Linux系统中的显著特征之一,其作用有点类似于Windows系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式。vi是一个功能强大的全屏幕文本编辑工具,vim是vi编辑器的增强版本,在vi编辑器的基础上扩展了很多实用的功能,但是习惯上也将vim称作vi。

vi编辑器的工作模式:
命令模式:启动vi编辑器后默认进入命令模式,该模式中主要完成光标移动、字符串查找、以及删除、复制、粘贴文件内容等操作。
输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件进行修改,或者添加新的内容。出于输入模式时,编辑器最后一行会出现--insert--的状态提示信息。
末行模式:该模式可以设置vi编辑环境、保存文件、退出编辑器,以及对文件女儿进行查找、替换等操作。出于末行模式,最后一行会出现":"提示符。

一、vi打开编辑文件
vi <filePathAndName>(示例:vi test.conf, vi /tmp/test.conf,...)
如果指定的filePathAndName存在则会自动载入该文件内容,如果不存在则会自动创建。
注:每行前显示波浪符号的表示该行为空行。

二、模式切换

在命令模式中,使用a、A、i、I、o、O等按键快速切入输入模式,返回命令模式按Esc按键即可。进入末行模式在命令模式按":"即可。

三、vi编辑指令
1、屏幕翻页
Ctrl+u: 向上翻半屏
Ctrl+f: 向上翻一屏
Ctrl+d: 向下翻半屏
Ctrl+b: 向下翻一屏
2、移动光标指令
移动光标普遍使用的是方向键,考虑兼容问题,vi定义太多的方向指令,下面只是一小小部分(常用的几个):
space: 光标右移一个字符
Backspace: 光标左移一个字符
Enter: 光标下移一行
nG: 光标移至第n行首
n+: 光标下移n行
n-: 光标上移n行
n$: 光标移至第n行尾
0: 光标移至当前行首
$: 光标移至当前行尾

3、插入删除指令
常用插入、删除指令如下:
i:在当前光标前插入,光标后文本向后移
a:从当前光标后插入,光标后文本后移
I:在光标所在行首插入(第一个非空白字符前)
A:从光标所在行末插入
o: 在光标所在行下面新增一行(并进入输入模式)
O: 在光标所在行上方新增一行(并进入输入模式)
x: 删除光标所在字符,等同于[Delete]功能键
X: 删除光标前字符,相当与[Backspace]
dd: 删除光标所在的行
yy:复制当前行正行内容到剪切板
#yy:#是具体数字,可以复制从光标处开始的#行内容
p:粘贴剪切板中的内容到当前光标位置之后
P:粘贴剪切板中的内容到当前光标位置之前
r: 修改光标所在字符
R: 替换当前字符及其后的字符,直到按 [ESC]
s: 从当前光标位置处开始,以输入的文本替代指定数目的字符
S: 删除指定数目的行,并以所输入文本代替之
do: 删至行首
d$: 删至行尾

四、vi查找、保存和退出
退出输入模式,先按一下[ESC]键(有时要多按两下),然后执行:
按/键输入指定的字符串,从当前光标处向下查找。
按?键输入指定的字符串,从当前光标处向上查找。
查找完按n、N键在不同的查找结果中进行选择。
按u取消最近一次操作,可按多次,类似撤销。
按U取消当前行所做的所有编辑。:w &mdash;&mdash;保存当前文件
:wq 存盘退出(与指令 :x 功能相同)
:q 直接退出,如已修改会提示是否保存
:q!不保存直接退出

五、打开新文件或读入其它文件内容
在当前vi编辑器中,执行":e 新的文件"形式的末行命令可以编辑新文件。
在当前vi编辑器中,执行":r 其他文件"形式的末行命令读入其他文件的内容,将其复制到当前光标的所在位置。

六、文件内容替换
在vi编辑器的末行模式中,能够文件中特定的字符串替换成新的内容。格式如下:
: [替换范围] sub /旧的内容/新的内容[/g]
上述格式中,主要关键字为sub(Subsititute,替换),也可以简写为s。替换范围是可选部分,缺省时只对当前行的内容进行替换,一般可以分为两种形式:
①、%:在整个文件内容中进行查找替换。②、n,m:在指定行数范围内进行查找替换。
最后的"/g"也是可选内容,表示对替换范围内每一行所有的匹配结果都进行替换,省略时将只替换每行第一个匹配结果。
在末行模式执行"set nu"命令可显示行号,执行"set nonu"取消显示行号。




VIM实现批量注释的方法:


方法一 块选择模式

批量注释:

Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的I进入行首插入模式输入注释符号如 // 或 #,输入完毕之后,Vim会自动将你选中的所有行首都加上注释

取消注释:

Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意// 要选中两个,选好之后按d即可删除注释


方法二 替换命令

批量注释:

使用下面命令在指定的行首添加注释:

:起始行号,结束行号s/^/注释符/g

取消注释:

:起始行号,结束行号s/^注释符//g

例子:

在10 - 20行添加 // 注释

:10,20s#^#//#g

在10 - 20行删除 // 注释

:10,20s#^//##g

 

在10 - 20行添加 # 注释

:10,20s/^/#/g

在10 - 20行删除 # 注释

:10,20s/^/#/g

注意例子中正则的分割符使用的是相反的符号,如果匹配// 那么使用 #作分隔符这样不需要对/作转义处理,节省输入次数



你可能感兴趣的:(linux,vi,系统,编辑器)