如何修改Vim中[[和]]的代码块跳转规则?
修改Vim的[[和]]命令,支持带制表符缩进的大括号跳转
默认情况下,Vim的[[和]]仅会定位到行首无缩进的{和}。要让它们同时兼容行首带若干制表符的大括号,直接自定义映射即可:
配置方案
在你的~/.vimrc(Neovim用户则是~/.config/nvim/init.vim)中添加以下代码:
" 重定义[[,匹配行首0个或多个制表符后的{ nnoremap [[ :execute 'normal! ?^\t*\{'<CR> " 重定义]],匹配行首0个或多个制表符后的} nnoremap ]] :execute 'normal! /^\t*\}'<CR>
如果需要避免匹配注释中的大括号(比如代码注释里的{),可以用更精准的正则:
nnoremap [[ :execute 'normal! ?^\t*\%(function\|{\)\@<=\{'<CR> nnoremap ]] :execute 'normal! /^\t*\%(}\)\@<=\}'<CR>
关键说明
^\t*表示匹配行首开始的0个或多个制表符,如果你用空格缩进,替换成^\s*即可- 自定义映射会覆盖默认命令,同时完全兼容原有的首列大括号跳转逻辑
- 保存配置后重启Vim,或者执行
:source ~/.vimrc即可生效
内容的提问来源于stack exchange,提问作者Russell G
相关产品推荐
相关产品推荐

