[VIM]用%帮助begin快速找到对应的end

本文介绍了如何在Vim中安装并配置matchit插件,以实现代码匹配功能。通过在.vimrc文件中添加'runtimemacros/matchit.vim'并设置b:match_words变量,可以轻松跳转代码中的配对结构,如if-endif、begin-end等。只需在命令模式下输入%,光标就能自动移到对应的结束标签处。此外,还提供了针对不同代码配对结构的设置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要vim自带的但是不会自动安装的插件 - matchit

在.vimrc 文件中加入:

runtime macros/matchit.vim

然后设置你相对应的string:

let b:match_words='\<begin\>:\<end\>' 

重启vim.
使用时,在command模式下,光标停在begin处,press %, 帮你找到对应的end.

摘自不二鱼:如果想要配对 ifdef, endif, 等等其他的,把如下加入到.vimrc即可:

let b:match_words =
    \ '\<begin\>:\<end\>,' .
    \ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
    \ '\<module\>:\<endmodule\>,' .
    \ '\<if\>:\<else if\>:\<else\>,' .
    \ '\<function\>:\<endfunction\>,' .
    \ '`ifdef\>:`else\>:`endif\>,' .
    \ '\<task\>:\<endtask\>,' .
    \ '\<program\>:\<endprogram\>,' .
    \ '\<specify\>:\<endspecify\>'
————————————————
版权声明:本文为优快云博主「不二鱼技术分鱼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/lucky09090827/article/details/121992179
### 如何在 GVim 中设置光标快捷键以匹配 'begin' 和 'end' 为了实现这一功能,可以通过自定义 Vim 脚本来绑定特定的按键组合来移动光标到指定的关键字位置。以下是具体的配置方法: #### 配置文件修改 编辑 `.vimrc` 文件或者 `_vimrc` 文件(取决于操作系统),添加以下脚本内容: ```vim function! MoveToKeyword(keyword) let current_line = getline('.') let index = match(current_line, '\<' . a:keyword . '\>') if index != -1 call cursor(line("."), col(".") + index) endif endfunction nnoremap <silent> <C-b> :call MoveToKeyword('begin')<CR> nnoremap <silent> <C-e> :call MoveToKeyword('end')<CR> ``` 上述代码的功能如下: - 定义了一个函数 `MoveToKeyword`,该函数接收一个参数作为目标关键字[^3]。 - 使用 `getline('.')` 获取当前行的内容,并通过正则表达式查找关键字的位置。 - 如果找到关键字,则调用 `cursor()` 函数将光标移动到对应位置。 #### 绑定快捷键说明 - `<C-b>` 表示 Ctrl+b 键组合,用于跳转到关键词 "begin" 的位置。 - `<C-e>` 表示 Ctrl+e 键组合,用于跳转到关键词 "end" 的位置。 这些映射仅适用于正常模式下的操作。 --- #### 注意事项 如果希望此功能支持多行搜索而不是局限于单行,可以扩展脚本逻辑为全局范围内的关键词定位。例如,使用 `/pattern/` 命令结合自动执行动作完成更复杂的场景需求。 此外,在安装插件管理工具时可参考命令 `curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim [^1]` 来简化后续可能涉及的插件依赖问题。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值