vscode启用驼峰单词连击选中的唯一可靠方式是修改editor.wordseparators,将a-z全部加入分隔符列表,使大小写切换点成为单词边界,修改后需重载窗口生效。

VSCode 默认不支持驼峰单词内部连击选中
VSCode 原生的 editor.wordSeparators 是按字符列表切分单词的,它把 a、B、C 当作同一类“字母”,不会识别大小写切换点。所以双击 userName 只会选中整个词,而不是分段选中 user 或 Name。
启用驼峰单词连击选中的唯一可靠方式:改用 editor.wordSeparators + 自定义分隔符
这不是靠插件或快捷键开关,而是修改编辑器对“什么是单词边界”的定义。关键在于:把所有大写字母(A-Z)加入分隔符列表,让 VSCode 认为 u 和 S 之间是断点。
- 打开设置(
Ctrl+,或Cmd+,),搜索editor.wordSeparators - 点击右侧“在 settings.json 中编辑”,添加或修改该字段:
"editor.wordSeparators": "`~!@#$%^&*()=+[{]}\|;':",./?ABCDEFGHIJKLMNOPQRSTUVWXYZ"
注意:必须包含全部大写字母 A-Z,小写不用加——因为小写本身不构成驼峰边界;标点符号保留原默认值,只是追加大写字母。
为什么只加大写字母?其他常见错误配置
有人试过加 a-z,结果所有单词全被切成单字母;也有人删掉所有标点,导致 console.log() 无法整词选中。根本原因是:wordSeparators 的作用是“在哪些字符**两侧**打断单词”,不是“哪些字符属于单词”。
-
userName→ 插入U后变成user<u>serName</u>,VSCode 就在r和U之间切开 - 但
user内部没有大写字母,仍视为一个完整子词,双击user部分就能只选它 - 如果同时加了
a-z,u和s之间也被切,user就变成四个孤立字母
这个方案的副作用和兼容性注意点
它会影响所有语言的单词操作:光标跳转(Ctrl+←/→)、双击选中、删除单词(Ctrl+Backspace)。多数场景下更顺手,但少数情况要小心:
- JSON/YAML 键名如
apiVersion会被拆成api和Version,双击Version不会选中冒号前整个键 - HTML 标签名如
div不受影响(无大写),但自定义组件如MyButton会被拆 - 某些语言扩展(如 Python 的 Pylance)可能依赖原生单词逻辑做语义高亮,极少数情况下提示位置偏移
真正容易被忽略的是:改完 editor.wordSeparators 后,必须重启当前窗口或重载窗口(Ctrl+Shift+P → Developer: Reload Window),否则改动不生效。











