Sublime如何设置特定项目禁用自动换行?(代码风格保留)

1次阅读

项目级禁用 word_wrap 的正确方法是在 .sublime-project 文件的 settings 块中设置 “word_wrap”: false(布尔值,不可加引号),该设置优先级高于全局配置,且仅作用于当前项目所有文件。

Sublime如何设置特定项目禁用自动换行?(代码风格保留)

项目级禁用 word_wrap 的正确姿势

sublime text 没有“项目专属设置覆盖全局”的开关,但能通过 .sublime-project 文件精准控制当前项目行为。关键不是关掉换行功能本身,而是让编辑器在打开该项目时,对所有文件(包括新创建的)默认不启用 word_wrap,同时不影响其他项目。

实操建议:

  • 在项目根目录下新建或编辑 myproject.sublime-project(文件名任意,但后缀必须是 .sublime-project
  • 写入以下内容(注意是 settings,不是 editor_settings 或其他):
{   "settings": {     "word_wrap": false   } }

这个 settings 块会合并进当前窗口所有视图的设置,优先级高于用户/默认设置,且只作用于该 .sublime-project 打开的窗口。

word_wrap 设为 false 还是 "false"

必须是布尔值 false,不能加引号。加引号变成字符串 "false" 后,Sublime 会当作无效值处理,回退到全局设置(通常为 true),导致禁用失败。

常见错误现象:

  • 保存项目文件后重启 Sublime,打开 .py 或 .js 文件依然自动换行
  • 检查 View → Word Wrap 菜单项仍是勾选状态(说明实际未生效)

原因几乎全是引号误用或拼写错误(比如写成 wordwrapwrap_words)。

为什么不用用户设置或语法特定设置?

用户设置(Preferences → Settings)影响所有项目,违背“仅本项目”的需求;语法特定设置(如 JavaScript.sublime-settings)只对匹配语法的文件生效,而项目里可能混用 Markdown、json、.env 等多种类型,且新文件初始语法可能是 Plain Text,无法全覆盖。

项目设置的优势:

  • 天然按工作区隔离,开多个窗口互不干扰
  • 对所有打开的文件统一生效,无论语法类型或是否已保存
  • 可提交到 git(如果需要团队统一代码风格),只要不包含敏感路径

额外注意:缩进和软换行的混淆点

有人禁用 word_wrap 后发现长行仍“看起来被截断”,其实是开启了 draw_white_space 或启用了 line_numbers 导致视觉错觉;也有人把 wrap_width(控制软换行宽度)和 word_wrap(是否启用)搞混——后者关了,前者再大也无效。

确认是否真生效,最直接的方法:

  • 打开一个超长行的文件(比如一行 200 字符的 JSON 字符串)
  • 观察水平滚动条是否出现:出现 = 禁用成功;不出现 = 仍被换行
  • 执行命令 view.settings().get('word_wrap')(在 Sublime 控制台中),返回 False 才算落地

项目设置看似简单,但 Sublime 对 JSON 格式、键名大小写、布尔字面量极其敏感,少一个逗号或错一个字母,整个设置就静默失效。别信“改完就生效”,务必验证。

text=ZqhQzanResources