Sublime Text 修改单词边界需调整 word_separators 设置,删去其中的“-”可使 user-name 被整体选中;须在 Preferences → Settings – User 中修改,避免改动默认设置或误删其他分隔符(如 .),并注意语法专属设置优先级更高。
Sublime Text 怎么改单词边界?
默认双击选中单词时,
(连字符)、
、
等符号都会被当作分隔符,所以
会拆成
和
两段。这不是 bug,是 Sublime 按 ASCII 字符分类预设的「词界」行为,得手动改配置。
关键在
设置项——它定义哪些字符 *不参与* 单词构成。删掉其中的
,双击就能跨连字符选中整个
。
修改位置:菜单
Preferences → Settings – User
,在右侧 JSON 中添加或覆盖
不要直接改默认设置(Settings – Default),那会被升级覆盖
值必须是字符串,每个要排除的符号单独写,不能用正则或范围表示法
原始默认值长这样:
,注意反斜杠要转义
怎么安全删掉连字符但保留其他分隔符?
别全删
,否则
也会被当一个“词”选中,失去语义区分。只剔除明确需要粘连的符号更稳妥。
比如只想让连字符不打断单词,就从默认字符串里去掉
,其他照旧:
注意这里
被移走了,且因它在字符串中间,不用额外转义;如果放开头或结尾才需加反斜杠。
仿Sublime和notepad++编辑器效果
仿Sublime和notepad++编辑器效果
下载
改完保存,无需重启,双击立刻生效
如果误删太多(比如把
也去掉了),会导致类名、属性访问出问题,比如
变成一整块
不同语言插件可能覆盖该设置(如某些 JavaScript 插件会重设),优先检查是否被插件干扰
为什么改了没反应?常见失效场景
最常踩的坑不是配置错,而是作用域没对上。Sublime 的设置有层级:全局、语法专属、项目专属。双击行为走的是当前视图的语法模式设置。
确认当前文件右下角显示的语法(如
Plain Text
或
JavaScript
),再打开对应语法的设置:菜单
Preferences → Settings – Syntax Specific
如果用了
,项目级设置会覆盖用户级,检查其中是否有
块重复定义了
部分插件(如
或旧版
)会劫持鼠标事件,临时禁用插件验证是否冲突
macOS 上如果启用了「使用系统光标行为」,也可能影响双击逻辑,可尝试关闭对比
连字符之外还想粘连其他符号?
比如处理 CSS 类名
或 Python 的
,可以继续从
里移除对应字符:
想让下划线也粘连:删掉
(但注意这会让
变成一整块,Python 用户慎用)
想让点号粘连(如
):删掉
,但会丧失对对象链的基本识别能力
想只对特定语法生效(如只在 CSS 文件里粘连
):用
Settings – Syntax Specific
,并确保文件关联正确(.css 文件不能被识别为 Plain Text)
真正难的不是加几个字符,而是判断哪些符号在什么上下文里该“粘”,哪些该“断”。比如
里的大驼峰和
里的短横线,语义完全不同——Sublime 没法自动区分,只能靠你按实际编辑场景权衡。
-_.user-nameusernameword_separators-user-name"word_separators"".,;:!?()[]{}"'`-\|/\_~@#$%^&*+="word_separatorsfoo.bar(baz)-
{
"word_separators": "./\()"'-:,.;!?[]{}|_~@#$%^&*+=<>`"
}
-.obj.methodProject.sublime-projectsettingsword_separatorsBracketHighlighterEmmetbg-red-500__dunder__word_separators_snake_casefoo.bar.baz.-HTTPServerhttp-server