谁难帮我解释一下下面这几个vim的操作
时间:2010-06-22
来源:互联网
:%s= *$== 删除行尾空白
:g/^s*$/d 删除所有空行
:g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行
:v/./.,/./-1join 压缩空行
:g/^$/,/./-j 压缩空行
第一行,看了下vim的帮助,=是显示最后一行行号的意思,s后面也没有"/",最后双出现个==,没看明白。
第二行删除所有空行的那个是我搜索的原因,证实可行,可是我不懂了,查了一下:[范围]g/{pattern}/[cmd],表示在[范围]内符合{pattern}的行执行[cmd](默认:print)。问题就出在这个{pattern}上,我觉得应该是符合正则表达式的,可是^s*$是表示空行么?我试了下直接改成^$也能成功。只是不明白原式是什么意思。
第三行还凑合明白点儿,四五行就不明白了,好像涉及到joinspace,我也没看明白,望高手帮我解释一下。
作者: dchwlinux 发布时间: 2010-06-22
'
#
@
好像都能做分隔符,我没试过,也没找到相关教程
不知是不是要读源码或英文文档才能知道具体作用
作者: 相思爱文 发布时间: 2010-06-23
Delete all blank lines (^ is start of line; \s* is zero or more whitespace characters; $ is end of line)
删除所有空白行(^是行的开始,\s*是零个或者多个空白字符;$是行尾)
:g/^\s*$/d
经实验,可以删除包括空白,Tab,空白和Tab交错的所有空行。
http://bbs.chinaunix.net/thread-510754-1-1.html
查了下:g/^s*$/d
好像都是出自一个地方,是作者笔误
应为:g/^\s*$/d
可试一下,用vim编辑下面的文件
- ssss
-
- 1111
-
- ssssss
-
- 22222
-
- ssssssssssssss
-
- sssssssssss
作者: 相思爱文 发布时间: 2010-06-23
:g/^$/,/./-j 压缩空行
这两行不清楚,如果是应用的话,强行记住就行了,以下是我的理解,不保证准确
:g/^$/,/./-j 搜索,空行与空行之间执行合并操作,结果是有多个相联空行最后只剩一个
:v/./.,/./-1join (v与g作用相同,就是不匹配某些字符)
:v/./.,/./-0 join
作者: 相思爱文 发布时间: 2010-06-24
作者: dchwlinux 发布时间: 2010-06-25
作者: 相思爱文 发布时间: 2010-06-25
- :0w5ty(1
作者: [email protected] 发布时间: 2010-12-17
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28