按正则排序:

:sort r /regex/
" 零宽度 :h /\@="
/<\@<=[^>]*>\@= :搜索标签内容,忽略>
/<\@<=\_[^>]*>\@= :在可能的`多行`中搜索标签
:bufdo exe ":normal Gp" | update :
:bufdo exe ":normal !@a" | w :
:s/fred/<cr>a/g
:s/fred/\=@a/g
//用寄存器内容来替换.
:g/-------/.-10,.d
//删除串和前10行
:g/{/ ,/}/- s/\n\+/\r/g
//:删除空行,但仅限于{...}
g% `正常模式`重复上次替换
g& `所有行`的最后一个替换
:lcd %:p:h,切换到当前文件的目录
:g/^$/;/^$/-1!sort

折叠:

zf 创建折行,f 表示 fold
zo 打开折行,o 表示 open
zc 关闭折行,c 表示 close
zd 删除折行,d 表示 delete

可以把不需要的​​条件分支,函数,变量声明​​​等都​​折叠​​​起来,专注​​核心逻辑​​​.
​​​zf​​​最变态功能就是可以与​​text-object​​​配合工作:
​​​zfa{​​​,​​折叠​​​成对​​大括号​​​间内容,
一般用于折叠​​​函数定义,循环​​​,只一个​​分支​​​的条件判断.
​​​zfi{​​​折叠​​成对​​​大括号之间的内容,不包括​​大括号​​​所在行,一般用于​​折叠条件判断​​​的多个分支,​​try-cache​​​的各部分内容.
不管​​​代码​​​多长,一个​​zfo{​​​或者​​zfi{​​​立马折叠.
​​​vimtex​​​,​​vim​​​的​​latex​​插件.配置:

Plug 'lervag/vimtex'
let g:tex_flavor='latex'
let g:vimtex_view_method='zathura'
let g:vimtex_quickfix_mode=0
//下为隐藏功能,
set conceallevel=1
let g:tex_conceal='abdmg'

除了​​光标​​​所在行之外,文本里夹杂的​​LaTeX​​​代码就都会​​隐藏​​​或​​替换​​​成​​其他符号​​​.
​​​((, )), [[,]], {{, }} ​​浏览函数很方便.

/\%>20l\%<30lgoat 
//在第20行和第30行之间搜索goat[N]
'a,'bs/extrascost//gc
//技巧:限制搜索在标记之间(答案n)[N]
" 第 30 列中的替换字符串 [N]"
:%s/^\(.\{30\}\)xx/\1yy/
" 将数字减 3"
:%s/\d\+/\=(子匹配(0)-3)/
" 光标下的单词拉入替代的 LHS(左边)"
:nmap <leader>z :%s#\<<cr>=expand("<cword>")<cr>\>#
" 将视觉突出显示的文本拉入替代品的 LHS"
:vmap <leader>z :<CU>%s/\<<cr>*\>/

​d/fred/​​​删除,直到​​fred​​​.
​​​@:​​​重复上次命令.
​​​<CR><CW>|<CR><CA>​​​.
更易加载​​​vimrc​​.

:nmap ,s :source $VIM/_vimrc
:nmap ,v :e $VIM/_vimrc
:history : 所有命令列表
:his c : 命令行历史
:his :搜索历史

光标下显示颜色:

:nmap <leader>c :hi Normal guibg=#<cr>=expand("<cword>")<cr><cr>

​wn,wp​​​,​​bun​​​卸载缓冲区,​​b3​​​.
​​​e #​​​编辑替代文件.
​​​sball​​​拆分所有缓冲区.
非常神奇:

/codes\(\n\|\s\)*:普通正则表达式
/\vcodes(\n|\s)*:非常神奇
:h quickref

设置折叠标记:

filetype=help foldmethod=marker foldmarker=<<<,>>>

​scrollbind​​​,一起滚动.
​​​V%​​​,可视化匹配内容.
​​​:%s/\%V​​​可视区中替换.​​gv​​上个可视.