Sublime如何设置双击选中整个变量_Sublime分隔符设置修改【干货】

1次阅读

双击选中变量名不完整是因为默认 word_separators 包含下划线,需在用户设置中将 “_” 从 “word_separators” 值中移除,如:”./()”‘-:,.;~!@#$%^&*|+=[]{}`~?”,保存后生效。

Sublime如何设置双击选中整个变量_Sublime分隔符设置修改【干货】

双击选中变量时只选中部分单词?改 word_separators

sublime 默认双击选中“单词”是按 ASCII 字符边界切分的,遇到下划线 _、点号 .、美元符 $ 这类符号就自动断开——所以 user_name 双击只会选中 username,而不是整个标识符

真正起作用的是配置项 word_separators,它定义了哪些字符算“分隔符”。想让双击选中带下划线的变量名,就得把下划线从默认列表里删掉。

  • 打开 Preferences → Settings(左右两栏,改右边用户设置)
  • 添加或修改这一行:"word_separators": "./()"'-:,.;~!@#$%^&*|+=[]{}`~?"(注意:里面没有 _
  • 保存后立即生效,不用重启;但已打开的文件可能需要重新聚焦光标才刷新选中逻辑

别直接复制网上老教程里的值——有些版本默认含 _,有些不含;不同 Sublime 版本(如 3 vs 4)、不同操作系统(macos 的默认值和 windows 略有差异)也会导致行为不一致。

为什么改了 word_separators 后正则查找也变奇怪了?

这个配置不仅影响双击,还会影响 Ctrl+F 查找时的“当前单词高亮”、Ctrl+D 逐个选择相同单词、以及 Alt+F3 全文选中所有匹配项的行为。一旦删掉 _user_name 就会被当作一个整体参与匹配,而不再是两个词。

  • 如果你常用正则查找 user,它依然只匹配独立单词 user,不会因为 word_separators 改动而失效
  • 但用普通模式双击选中再按 Ctrl+D,现在会连带选中所有 user_nameuser_idusername —— 因为它们都以 user 开头且未被 _ 截断
  • 如果项目里大量使用驼峰和下划线混用(比如 userNameuser_name),建议保持 _word_separators 中,否则双击选中逻辑反而更混乱

想只对特定语言生效?用语法专属设置

全局改 word_separators 容易引发跨语言副作用。比如 Python 里 __init__ 希望整段选中,但 jsobj.prototype.toString 又希望点号能断开——硬统一处理会两头不讨好。

  • 打开任意 .py 文件 → Preferences → Settings – Syntax Specific
  • 在里面加:"word_separators": "./()"'-:,.;~!@#$%^&*|+=[]{}`~?"(同样去掉 _
  • 这个设置只对 Python 语法生效,JS、json、Markdown 等不受影响

注意:语法专属设置优先级高于用户全局设置,且文件关联由 Sublime 自动识别(靠文件扩展名或首行 shebang),不是靠文件名关键词。

改完没效果?检查这三个地方

常见失效不是配置写错,而是被其他层覆盖或缓存干扰:

  • 确认修改的是 Preferences → Settings – User(右侧),不是左侧的默认设置——左侧改了等于白改
  • 检查是否装了插件如 WordHighlightAdvancedNewFile,某些老版本会强行重置 word_separators
  • 如果用的是 Sublime Merge,它的编辑器共享 sublime text 设置,但部分版本存在缓存 bug,可尝试关闭再重开当前文件

最隐蔽的坑是:某些主题或 ui 插件会悄悄注入自定义设置,尤其那些声称“优化编程体验”的打包插件——它们可能在后台覆盖了你的 word_separators,而且不提示。

text=ZqhQzanResources