You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vim可视化模式下如何实现选中光标到最近{/}的快捷键映射?

解决Vim可视化模式下选中到最近{}的快捷键问题

你的问题出在:可视化模式下执行:call search(...)这类命令会直接退出可视化状态,导致仅跳转而不选中文本。要实现可视化模式下选中从光标到最近{/}的文本,需要针对不同模式分别配置映射:

正确的快捷键映射

-- 正常模式:跳转至最近的{/}并居中
vim.keymap.set('n', '<S-Up>', ":call search('{', 'b')<CR>zz", { noremap = true, silent = true })
vim.keymap.set('n', '<S-Down>', ":call search('}')<CR>zz", { noremap = true, silent = true })

-- 可视化模式:选中从光标到最近{/}的文本并居中
vim.keymap.set('v', '<S-Up>', "?{<CR>zz", { noremap = true, silent = true })
vim.keymap.set('v', '<S-Down>', "/}<CR>zz", { noremap = true, silent = true })

原理说明

  • 正常模式下,search()函数可以精准定位目标字符,配合zz实现居中显示,和你原来的逻辑一致。
  • 可视化模式下,直接使用?{(向上搜索最近的{)和/}(向下搜索最近的}),这类命令会在保持可视化状态的同时,自动选中从当前光标到目标字符的范围,再通过zz居中。

内容的提问来源于stack exchange,提问作者mr_scrpt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:07:43