使用vim编辑器去除文件中的^M

set fileformat=unix

vim编辑器使用16进制打开文件

以十六进制显示文件:%!xxd,换回二进制:%!xxd -r

vim编辑器比较优秀的配置文件

https://github.com/spf13/spf13-vim

界定单词的边界

我们在定义模式时,如果能指定单词从哪里开始到哪里结束的话,将会非常有用,可以使用vim编辑器的单词界定符。

删除文件中元素所在的所有的行

1
2
3
4
5
"删除文件中的空白行
g/^\s*$/d
"去除重复的行
g/pattern/d "是找到pattern, 删之
v/pattern/d "是找到非pattern,删之

大小写转换

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
~          将光标下的字母改变大小写
3~         将光标位置开始的3个字母改变其大小写
g~~        改变当前行字母的大小写
U          将可视模式下选择的字母全改成大写字母
u          将可视模式下选择的字母全改成小写
gUU        将当前行的字母改成大写
3gUU       将从光标开始到下面3行字母改成大写
guu       将当前行的字母全改成小写
gUw       将光标下的单词改成大写。
guw       将光标下的单词改成小写。

使用sort命令对文本行进行排序,去重排序

1
2
3
4
:sort

:sort u

显示执行中的错误

可以使用 echo errmsg显示错误信息,查看对应的错误id和说明,使用help error

查看按键映射

可以使用verbose map <key> 查看已经设置的按键映射。

驼峰转下划线

这里是正则表达式在vim中的应用。

1
2
3
4
5
6
7
8
"设置搜索的时候大小写敏感,如果已经设置了,可以忽略
: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 当使用\=的时候表示使用函数的执行结果。