您的位置:首页 > 其它

Vim - 扩展命令(末行命令)模式

2020-08-04 16:08 134 查看

扩展命令模式

在命令模式下,按

:
进入Ex(个人更偏向于叫末行)模式,创建一个命令提示符:处于屏幕底部的左侧

扩展命令模式基本命令

w	写(存)磁盘文件
wq	写入并退出,个人建议使用该命令保存退出
x	写入并退出,等同于wq
X	加密,不建议使用
q	退出
q!	不保存退出,及时更改都将丢失
r	后接FILENAME,读取FILENAME 的内容到当前vim 文本中
w 	后接FILENAME,将当前文件内容写入另一个文件
!CMD	在不退出vi的情况下,执行命令
r!CMD	读入命令的输出

地址定界

命令格式

:start_pos,end_pos CMD  #起始坐标,结束坐标 命令

地址定界格式

#			具体第# 行,如2表示第二行
#,#			第一个表示起始行,第二个表示结尾行,如2,4表示从第二行到第四行
#,+#		第一个表示起始行,加上第二个表示行数,如3,+5表示从第三行到第八行
.			当前行
$			最后一行
.,$-1		当前行到倒数第二行
%			全文,等同1,$

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

地址定界后跟编辑命令

d	删除
y	复制
p	粘贴到当前行的上一行
P	粘贴到当前行的下一行
w file	将范围内的行另存至指定文件中
r file	在指定位置插入指定文件中的所有内容

范例

#末行模式下,4,9 将第4行到第9行的内容删除
:4,9
按d 键

#末行模式下,4,+5 将第4行到第9行的内容另存到f1.txt中
:4,+5 r f1.txt

查找并替代

s/要查找的内容/替换的内容/修饰符

内容说明:
要查找的内容:可使用基本正则表达模式

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

修饰符:
i	忽略大小写
g	全局替换,默认情况下,每一行只替代第一个匹配项
gc	全局替换,替换前提示

/ 查找替换中的分隔符 / 可替换为其他字符,如:#,@ (个人喜欢使用@)

范例

#在末行模式下,@ 是分隔符,g 表示全局替换。将文中的etc 替换成var
:s@etc@var@g
#在末行模式下,# 是分隔符,i 表示忽略大小写。将文中的/boot 替换成/
:s#/boot#/#i

#在末行模式下,从当前行到倒数第二行,root 替换成dawn
:.,$-1s@root@dawn@g

#全文中l..e 后追加r	()模式匹配,\1,\2...前向引用
[root@centos8 data]#vim test
hello, like
hgrei, love
hefgelo,like
hihafd,lvoe
#末行模式下,% 表示全文,l..e需要放在()内,且()需要转义,属于模式匹配,\1 表示前向引用
:%s@\(l..e\)@\1r@g
#匹配后的结果
hello, liker
hgrei, lover
hefgelo,liker
hihafd,lvoer

#全文中l..e 替换为 r
[root@centos8 data]#vim test
hello, like
hgrei, love
hefgelo,like
hihafd,lvoe
#末行模式下,% 表示全文,l..e需要放在()内,且()需要转义,属于模式匹配,r是替换的内容
:%s@\(l..e\)@r@g
#匹配后的结果
hello, r
hgrei, r
hefgelo,r
hihafd,r

#将全文中的good 后追加xxx,as后追加aaa
:%s#\(good\) \(as\)#\1xxx,\2aaa#

定制vim 的工作特性

扩展命令(末行)模式的配置只对当前vim 进程有效,可将配置存放在文件中持久保存

全局 /etc/.vimrc
个人 ~/.vimrc

行号*

显示:set number	缩写:set nu
取消显示:set no number	缩写:set nonu

忽略大小写*

启用:set ignorecase	缩写:set ic
不忽略:set noic

显示Tab 和换行符 ^| 和$ 显示*

启用:set list
禁用:set nolist

自动缩进*

启用:set autoindent	缩写:set ai
禁用:set noai

复制保留格式*

启用:set paste
禁用:set nopaste

高亮搜索

启用:set hlsearch
禁用:set nohlsearch	缩写:set nohl

语法高亮

启用:syntax on
禁用:syntax off

文件格式

启用windows格式:set fileformat=dos
启用unix格式:set fileformat=unix
简写:set ff=dos|unix

Tab 用空格代替

启用:set expandtab	默认为8个空格代替Tab
禁用:set noexpandtab
简写:set et

Tab 用指定空格的个数代替*

启用:set tabstop=#	指定# 个空格代替Tab
简写:set ts=4

设置文本高度

set textwidth=65(vim only)
set wrapmargin=15

设置光标所在行的标识线*

启用:set cursorline	缩写:set cul
禁用:set nocursorline

加密

启用:set key=pwd
禁用:set key=

set 帮助

:help option-list
:set or :set all
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: