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

如何使用文本对象选择大括号间的行(不含大括号所在行)

如何在Vim中选择大括号之间的行(不含大括号行)

针对你提到的Sass场景,我来给你几个实用的操作方法:

多行排版代码的核心操作

假设你的代码是标准的多行缩进写法:

#main {
  h2 {
    font-weight: normal;
    border-bottom: 1px solid #ccc;
  }
}

当光标在font-weight那一行时,直接输入vi{会选中h2大括号内部的所有内容(包括缩进空格和换行)。如果想只选中中间的代码行,排除大括号所在行,只需要两步:

  1. 输入vi{选中内部区域
  2. 按o切换到选中块的起始端(此时光标会跳到h2 {下面的缩进位置),再按j向下移动一行——这样选中范围就精准定位到你要的两行代码了

单行紧凑代码的处理

如果你的代码是写成一行的紧凑形式:

#main { h2 { font-weight: normal; border-bottom: 1px solid #ccc; } }

输入vi{会选中括号内的内容(包括前后空格),想要去掉空格只保留代码语句的话:

  1. 输入vi{选中内部
  2. 按l向右移动光标,跳过开头的空格
  3. 按o切换到选中块的另一端,按h向左移动跳过结尾的空格,就能得到纯代码内容了

自定义映射提高效率

如果你经常需要这个操作,可以在你的.vimrc里加一行自定义映射:

nnoremap <leader>vi{ vi{<o>j

之后只要输入<leader>vi{(默认<leader>是反斜杠\),就能一键选中大括号之间的代码行,不用手动调整范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:52:11