vim的特殊技巧

原文
按正则排序:

: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,vimlatex插件.配置:

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上个可视.

posted @   zjh6  阅读(15)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示