Kevin_306

05 文本编辑器之神 vim (一)

 

在Linux中我们经常编辑修改文本文件,即由ASCII, Unicode 或其它编码的纯文字的文件。之前介绍过 nano,实际工作中我们会使用更为专业,功能强大的工具


1.1vi和vim简介

文本编辑种类:
     全屏编辑器:nano(字符工具), gedit(图形化工具),vi,vim

     行编辑器:sed

vi
Visual editor,文本编辑器,是 Linux 必备工具之一,功能强大,学习曲线较陡峭,学习难度大

vim
VIsual editor iMproved ,和 vi 使用方法一致,但功能更为强大,小化安装时不是必安装软件,需要 自行安装
官网:www.vim.org
其他相关编辑器:gvim 一个Vim编辑器的图形版本

 

1.2 三种主要模式和转换

vim 是 一个模式编辑器,击键行为是依赖于 vim的 的“模式”
三种常见模式:
    命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴文本

    插入(Insert)或编辑模式:用于修改文本

    扩展命令(extended command )或命令(末)行模式:保存,退出等

  (小提示wq退出,x等价于wq,但是不建议使用x,如果输入成X,就变成了加密)

1.2.1命令模式 --> 插入模式

i   insert, 在光标所在处输入
I   在当前光标所在行的行首输入
a   append, 在光标所在处后面输入
A   在当前光标所在行的行尾输入
o   在当前光标所在行的下方打开一个新行
O   在当前光标所在行的上方打开一个新行

1.3 扩展命令模式基本命令

w      写(存)磁盘文件 
wq     写入并退出 
x       写入并退出 
X      加密 
q      退出 
q!   不存盘退出,即使更改都将丢失   
r      filename     读文件内容到当前文件中 
w     filename     将当前文件内容写入另一个文件
!command         执行命令 
r!command        读入命令的输出

1.4地址定界

#       #具体第#行,例如2表示第2行 
#,#     #从左侧#表示起始行,到右侧#表示结尾行    
#,+#    #从左侧#表示的起始行,加上右侧#表示的行数,范例:2,+3  表示2到5行 
.       #当前行 
$       #后一行 
.,$-1   #当前行到倒数第二行 
%       #全文, 相当于1,$

/pattern/       #从当前行向下查找,直到匹配pattern的第一行,即:正则表达式 
/pat1/,/pat2/   #从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束 
#,/pat/         #从指定行开始,一直找到第一个匹配patttern的行结束 /pat/,$          #向下找到第一个匹配patttern的行到整个文件的结尾的所有行

1.4.1地址定界后跟一个编辑命令

d            #删除 
y            #复制 
w file      #将范围内的行另存至指定文件中 
r  file      #在指定位置插入指定文件中的所有内容
 

1.5查找并替换

格式:s/要查找的内容/替换为的内容/修饰符

说明:要查找的内容:可使用基末正则表达式模式 替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可以使用“&”引用前面查找时查 找到的整个内容

修饰符:

i #忽略大小写 ;

g #全局替换,默认情况下,每一行只替换第一次出现 ;

gc #全局替换,每次替换前询问;

查找替换中的分隔符/可替换为其它字符,如:#,@
范例:

s@/etc@/var@g

s#/boot#/#i

 

 

 

 

 

 

 

 

posted on 2021-03-16 21:08  熊猫小虾  阅读(86)  评论(0编辑  收藏  举报

导航