使用 vim 编辑器去除文件中的^M
set fileformat=unix
vim 编辑器使用 16 进制打开文件
以十六进制显示文件:%!xxd
,换回二进制:%!xxd -r
vim 编辑器比较优秀的配置文件
https://github.com/spf13/spf13-vim
界定单词的边界
我们在定义模式时,如果能指定单词从哪里开始到哪里结束的话,将会非常有用,可以使用 vim 编辑器的单词界定符。
删除文件中元素所在的所有的行
"删除文件中的空白行
g/^\s*$/d
"去除重复的行
g/pattern/d "是找到pattern, 删之
v/pattern/d "是找到非pattern,删之
大小写转换
~ 将光标下的字母改变大小写
3~ 将光标位置开始的3个字母改变其大小写
g~~ 改变当前行字母的大小写
U 将可视模式下选择的字母全改成大写字母
u 将可视模式下选择的字母全改成小写
gUU 将当前行的字母改成大写
3gUU 将从光标开始到下面3行字母改成大写
guu 将当前行的字母全改成小写
gUw 将光标下的单词改成大写。
guw 将光标下的单词改成小写。
使用sort
命令对文本行进行排序,去重排序
:sort
:sort u
显示执行中的错误
可以使用 echo errmsg
显示错误信息,查看对应的错误 id 和说明,使用help error
。
查看按键映射
可以使用verbose map <key>
查看已经设置的按键映射。
驼峰转下划线
这里是正则表达式在 vim 中的应用。
"设置搜索的时候大小写敏感,如果已经设置了,可以忽略
:set smartcase
"使用这个表达式进行替换
:%s/\([^ .*+-]\)\([A-Z].\)/\1_\2/g
"或者用正则表达式的环视也可以实现
:%s/\([a-z]\)\@<=\([A-Z]\)/_\2/g
"或者下面的这个是用\v开启了vim 的 very magic模式,可以减少反斜杠的使用,使这个表达式更加地易懂
:%s/\v([a-z])@<=([A-Z])/_\2/g
单词首字母大小写转换
单词首字母转换会用到\L
、\l
、\u
和\U
这几个转义序列。
使用line
函数事项在每行数据头部添加行号
:%s/^/\=line('.')/g
当使用\=
的时候表示使用函数的执行结果。