sublime如何设置双击选择包含点号的完整标识符?(如obj.prop)

14次阅读

sublime Text 默认将点号(.)视为单词分隔符,双击 obj.prop 会分别选中 obj 和 prop;修改用户设置中的 word_separators 并移除 . 即可使其作为整体被选中,影响双击、Ctrl+←/→、Ctrl+D 等操作。

sublime如何设置双击选择包含点号的完整标识符?(如obj.prop)

sublime text 默认的单词边界是什么

Sublime Text 默认把 . 当作单词分隔符,所以双击 obj.prop 会分别选中 objprop,中间的点号被跳过。这不是 bug,而是基于传统“单词 = 字母数字序列”的设计逻辑。

修改 word_separators 配置项

关键在用户设置里删掉 . —— 它控制双击/双击选择时哪些字符算“分隔符”。只要把点号从默认列表中移除,obj.prop 就会被当做一个连续标识符对待。

操作步骤:

  • 菜单栏 → Preferences → Settings
  • 右侧用户设置(右侧面板)中添加或修改 "word_separators"
  • 确保 . 不在字符串里(注意:是删除字符,不是注释掉整行)
{     "word_separators": "./\()"'-:,.;<>~!@#$%^&*|+=[]{}`~?" }

→ 把上面这行里的 . 删掉,变成:

{     "word_separators": "/\()"'-:,.;<>~!@#$%^&*|+=[]{}`~?" }

保存后立即生效,无需重启。

为什么不能只删 . 还要保留其他符号?

删掉 . 是为了连通属性访问;但保留 /(; 等,是为了避免把 func()url/path 也连成一整块。否则双击 console.log("x") 可能选中整行——这不是你想要的。

常见误配:

  • 把整个 word_separators 设为空字符串 → 会导致双击几乎选中整行代码
  • 只改了左侧默认设置(左面板)→ 实际不生效,必须改右侧用户设置
  • 忘了去掉 . 前后的空格或引号格式错误 → Sublime 会静默忽略该配置项

这个改动会影响哪些操作?

不只是双击选择,所有依赖单词边界的动作都会变化:

  • Ctrl+← / Ctrl+→(跳词)现在会跨 . 移动光标
  • Ctrl+D(多重选择)会把 obj.prop 当作一个整体加选
  • Alt+F3(全文件查找选中词)也会匹配完整 obj.prop,而非单独的 objprop

副作用:如果你常写路径如 src/utils/helper.js,它也会被当做一个“单词”——这时可临时用 Ctrl+Shift+Right(按字符选)补救。

真正要注意的,是团队协作时这个配置不会同步——别人没改,就看不到你期望的选中行为。

text=ZqhQzanResources