如何在VSCode Vim中高效将foo(a,b,c)改为foo({a,b,c})?
高效转换
foo(a, b, c) 为 foo({a, b, c}) 的方法 一、VSCode + Surround 扩展(无需可视模式)
Surround 扩展支持快速包裹指定范围的内容,无需进入可视模式:
- 把光标放在括号内任意位置(比如参数、逗号或空格上)
- 打开命令面板(Windows/Linux:
Ctrl+Shift+P;Mac:Cmd+Shift+P),输入Surround: Surround with - 选择
{选项,扩展会自动识别当前括号内的范围,直接将内容包裹为({a, b, c})
进阶:绑定快捷键提速
可以给该操作绑定自定义快捷键,避免每次打开命令面板:
- 打开快捷键设置(Windows/Linux:
Ctrl+K Ctrl+S;Mac:Cmd+K Cmd+S) - 搜索
surround.with,为其绑定一个快捷键(比如Ctrl+Alt+{),之后直接按快捷键即可完成操作
二、VSCode Vim 环境(无需可视模式)
如果使用VSCode Vim插件(或其衍生版本),配合vim-surround功能(多数主流VSCode Vim插件已默认集成,若没有可单独安装vim-surround扩展),可以用以下一键操作:
- 将光标放在括号内任意位置
- 输入按键序列
ysib{:ys:触发surround包裹命令ib:选中当前光标所在的括号内全部内容(inner parentheses block){:指定用大括号包裹选中内容
- 执行后直接得到
foo({a, b, c})
备选方案(无surround时)
如果暂时没有surround功能,也可以用快速修改操作:
- 光标移到括号内第一个字符前,输入
i{进入插入模式输入左大括号,按Esc退出 - 输入
A}(A会跳转到当前行末尾的括号前),输入右大括号,按Esc退出
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

