Vim Tips

regexp 相关

1
2
3
4
5
6
7
8
# 统计正则匹配到的次数
:%s/pattern//ng

# 利用 global 把匹配到的行打印出来
:global/pattern/print

# 或者
:global/pattern

日志过滤

global

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# [d]elete all lines not(!) matching patterns
:g!/pattern/d
:v/pattern/d

# 匹配多个单词
:v/onStart\|onStop/d

# 忽略大小写,可以直接 `:set ignorecase`,或者:
# 强制忽略大小写:\c
:g/\cpattern/z#.1|echo "================================"
# 强制匹配大小写:\C
:g/\Cpattern/z#.1|echo "================================"

# 更多信息可查看帮助 `:help /ignorecase`

# 将匹配的行移动到最后吗
:g/pattern/m0
# 将匹配的行移动到最前面(顺序会变成倒序)
:g/pat/m$

# 展示匹配该正则表达式的列表
:g/regular-expression/p

[I, ilist

1
2
3
4
5
# Display all lines that contain the keyword under the cursor.
[I

# Like "[I" and "]I", but search in [range] lines	(default: whole file).
:il /pattern1\|patter2\|pattern3/

quickfix, location list

1
2
:vimgrep pattern %
:lvim pattern %

文件编辑相关

Json 格式化

1
2
# V 选中 json 字符串,然后调用 json.tool 格式化 json 字符串
:'<,'>!python3 -m json.tool

二进制编辑

使xxd 命令,切换到二进制模式: :%!xxd

退出二进制模式: :%!xxd -r

使用指定的 encoding 重新加载文件

:e ++enc=gbk

搜索

1
2
3
4
5
# 搜索时使用智能大小写
set ignorecase smartcase

# 增量搜索,光标自动跳转到匹配的位置
set incsearch

配置相关

重新加载 .vimrc

配置修改后,执行 :source ~/.vimrc 即可生效。

updatedupdated2023-02-282023-02-28