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

编写PowerShell代码时VSCode不遵守editor.wordSeparators设置问题

问题核心原因

VSCode 1.80及以上版本引入了两项调整,导致全局editor.wordSeparators配置不再生效:

  1. 语言级专属配置优先级高于全局配置:官方维护的语言扩展(比如PowerShell、PHP等)会默认给对应语言单独设置editor.wordSeparators值,你修改的全局配置会被语言级配置直接覆盖。
  2. 新增智能单词选择特性:默认开启的editor.wordSelectionSmartSelect功能优先级高于单词分隔符配置,会根据编程语言的语法语义规则判断单词边界,不会严格按照你配置的分隔符拆分选择。

修复方案

1. 配置对应语言的专属分隔符规则

不要只改全局的editor.wordSeparators,在settings.json中为你需要的语言单独设置分隔符,以PowerShell为例:

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

如果是PHP等其他需要保留$作为变量前缀的语言,参照上述格式添加对应语言的配置块即可。

2. 关闭智能单词选择功能

如果需要严格按照你配置的分隔符规则选中内容,关闭智能单词选择即可,可选择全局关闭或者仅针对指定语言关闭:

// 全局关闭智能单词选择
"editor.wordSelectionSmartSelect": false,

// 仅针对PowerShell关闭,不影响其他语言
"[powershell]": {
    "editor.wordSelectionSmartSelect": false,
    "editor.wordSeparators": "`~!@#%^&*()-=+[{]}\\|;:'\",.<>/?"
}

关闭该功能后,连字符的选择规则也会恢复正常:双击two-part时仅会选中当前分隔符区间的内容,不会选中整个字符串。

3. 排查第三方扩展冲突

如果按上述配置后仍然不生效,可临时禁用所有第三方扩展后重启VSCode验证,部分代码格式化、语言增强类扩展会强制修改编辑器的单词选择规则,排查到对应扩展后关闭其相关配置即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 04:54:02