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
,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
上个可视.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现