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

扩展命令模式

在命令模式下,按 : 进入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
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值