文本编辑器vim

前端之家收集整理的这篇文章主要介绍了文本编辑器vim前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

不知不觉一周的时间又过完了,感觉前所未有的充实!这周学习了vim编辑器据说很重要!

一.打开文件

★ vim +n filename 打开文件后,让光标处于第n行的行首,+默认尾行。

wKioL1mFJILD1K0FAAA2cJ0v6J0757.png

★ vim +/要搜索的词 filename 打开文件后,直接让光标处于第一个被匹配到的行的行首。

wKiom1mFJKfR_U5DAAB0QVyOhC4157.png

★ vim
-m 只读方式打开文件

wKioL1mFYqWw-5_GAAArT_rQEcA620.png

-b 二进制打开文件
-d file1 file2 比较多个文件

二.vim编辑器模式的切换

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

esc

命令模式--------->扩展命令模式

扩展命令模式-------->命令模式

enter,esc

★ 命令模式
ZZ: 保存退出
ZQ :不保存退出

命令模式翻屏操作:

ctrl +f 向下翻一屏
ctrl +b 向上翻一屏
ctrl +d 向下翻半屏
ctrl +u 向上翻半屏

★ 扩展命令模式:
:q 退出
:q! 强制退出,丢弃做出的修改
:wq 保存退出
:x 保存退出

注意:wq!或x!当文件对当前用户权限为read-only时,可以强制保存并退出(仅限root和当前文件的owner)

扩展命令模式

按“: ”进入扩展模式
创建一个命令提示符: 处于底部的屏幕左侧
命令:w 写(存)磁盘文件
wq 写入并退出
x 写入并退出
q 退出
q! ! 不存盘退出,即使更改都将丢失
r filename 读文件内容到当前文件
w filename 将当前文件内容写入另一个文件
!command 执行命令
r!command 读入命令的输出

★ 地址界定(扩展命令模式)

#具体第# 行,例如2 表示第2行 行
#,# 从左侧#表示起始行,到右侧#表示结尾行

#,+# 从左侧#表示的起始行,加上右侧#表示的行数 。":2,+3表示2到5行
. 当前行
$ 最后一行
.,$-1 当前行到倒数第二行
% 全文,相当于1,$

/pat1/,/pat2/
从第一次被pat1 模式匹配到的行开始,一直到第一次被pat2 匹配到的行结束

★ 查找(扩展命令模式)

/PATTERN :从当前光标所在处向文件尾部查找
?PATTERN :从当前光标所在处向文件首部查找

n :与命令同方向

N:与命令反方向

★替换 (扩展命令模式)

格式:s/ 要查找的内容/ 替换为的内容/ 修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式,但可以使用\1,\2,...等后向引用符号;还可以 使用“&” 引用前面查找时查找到的整个内容
修饰符:
i: 忽略大小写
g: 全局替换;默认情况下,每一行只替换第一次出现
gc: 全局替换,每次替换前询问
查找替换中的分隔符/ 可替换为其它字符,例如 s@/etc@/var@g s#/boot#/#i

★多文件模式:vim f1 f2 f3
:first 第一个
:next 下一个
:last 最后一个
:prev 前一个
:wall保存所有
:qall退出所有
:wqall保存退出所有

★使用多个窗口
文件分割:vim -o|-O file1 file2 file3

-o 水平分割

wKiom1mFZDXykJI9AABULMVn5po007.png

-O 垂直分割

wKioL1mFZOrhmPqhAABx3w8RqvE561.png

在多个窗口间切换: ctrl+w Arrow
文件分割:
ctrl+w,s : split 水平分割
ctrl+w,v : vertical 垂直分割
ctrl+w,q : 取消相邻的窗口
ctrl+w,o : 取消所有的窗口
:wqall 退出

◆习题

1.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符。

wKiom1mFN5GCxGq0AAA9KRhjWAs868.png

wKiom1mFN96RaQ6vAAALaVJv1I4873.png

wKioL1mFODrD72JoAAAmHb2dgOE013.png

这道题中用到的知识点有:

1.地址界定 %表示全

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

3. 要查找的内容用到正则表达式

4. 要替换成空格可以用//表示




2.复制/etc/rc.d/init.d/functions 文件至/tmp 目录,用查找替换命令为/tmp/functions 的每行开头为空白字符的行的行首添加一个#号。

wKioL1mFPzzDAAbfAABIPYhR1Vg287.png


wKioL1mFP7zSiP3zAAAOxjnIRUU885.png

wKiom1mFQArBmAS7AAA425qc7dk287.png

与上道题相比,这道题要用到后项引用,但是要注意的是后向引用的时候,要引用的内容一定要加()

3.复制/etc/rc.d/init.d/functions 文件至/tmp 目录,替换/tmp/functions 文件中的/etc/sysconfig/init 为/var/log 。

wKioL1mFaOywwTyfAAArmBsmlWQ786.png

wKiom1mFaVrxTmgYAAAikn3KIYY265.png

答案: :%s@\/etc\/sysconfig\/init@\/var\/log@g

解析:这道题中有许多"/",为防混淆可将查找替换中的分隔符/换成别的,如:@,#,此外查找替换中的/要进行转义

猜你在找的Bash相关文章