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

VIM原生操作:如何用单命令为指定单词组首尾添加**(无需替换)

Vim原生为多单词首尾添加**的方法

不用surround插件,原生Vim可以通过单个命令实现需求,以下是两种实用方案:

方案1:基于普通模式命令的直接实现

如果光标位于目标单词组(比如foo bar baz)的任意位置,执行以下单个命令即可完成:

:normal! 2bi**<Esc>3ea**<Esc>

命令拆解:

  • 2b:连续回退两次,跳转到第一个单词的开头(适配光标在目标单词组任意位置的情况)
  • i**<Esc>:在第一个单词开头插入**并退出插入模式
  • 3e:连续跳三次到单词末尾,定位到第三个单词的结尾
  • a**<Esc>:在第三个单词末尾插入**并退出插入模式

如果光标固定在第一个单词的开头,命令可以简化为:

:normal! i**<Esc>3ea**<Esc>

方案2:结合寄存器与可视化的命令实现

如果需要更灵活处理任意长度的文本块,也可以用这条单个命令(以选中3个单词为例):

:execute "normal! v3w\"=** . @\" . \"**\"\\<CR>P"

命令拆解:

  • v3w:进入字符可视化模式,选中3个单词
  • "=** . @\" . \"**\":利用表达式寄存器拼接出带**的新文本
  • <CR>P:将拼接后的文本替换掉选中的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:02:39