sublime怎么设置代码宽度_sublime标尺显示设置

4次阅读

sublime的rulers是纯视觉提示的垂直虚线,按逻辑列计算且不干预编辑行为;它不是自动换行、格式化、报错或保存相关的功能,也不受软换行影响,更无菜单开关。

sublime怎么设置代码宽度_sublime标尺显示设置

Sublime 的 rulers 是什么,不是什么

Sublime 的标尺线(rulers)就是几条浅灰色垂直虚线,纯粹视觉提示,不干预编辑行为——它不会自动换行、不触发格式化、不报错、也不影响保存。你设了 "rulers": [80],只是告诉编辑器:“在第 80 个字符位置画条线”,仅此而已。

  • 它按“逻辑列”计算:空格、制表符(t)、中文字符都算 1 列,和字体宽度无关;但等宽字体下对齐最准
  • 它不感知软换行(word_wrap):长行被折成多行后,标尺仍钉在原始第 80 列,不会跟着折行位置移动
  • 它不是“开关式功能”:没有“启用标尺”菜单项(View → Ruler 是旧版/误传,当前稳定版 sublime text 4+ 已移除该路径)

怎么设置全局标尺(比如统一用 80 或 120)

直接改用户设置 jsON,一行生效,无需重启。

  • 打开 Preferences → Settings,右侧是用户设置面板
  • 添加或修改字段:"rulers": [80](单线)或 "rulers": [79, 120](双线,Python 推荐 79,团队宽屏常用 120)
  • 务必检查 json 格式:逗号不能多也不能少,结尾不能有逗号,引号必须是英文双引号
  • 保存后立刻显示——如果没出现,大概率是 JSON 语法错误,可复制内容到 JSONLint 验证

怎么给 Python/JS 等语言单独设标尺

不同语言规范不同,硬套全局值反而碍事。Sublime 支持语法专属设置,优先级高于全局。

  • 打开 Preferences → Settings – More → Syntax Specific – User
  • 确保顶部状态栏显示当前是 Python(或 JavaScript),再粘贴:{"rulers": [79]}
  • 这个文件会自动保存为 Python.sublime-settings,只对 .py 文件生效
  • 注意:若已存在其他配置(如 "tab_size"),需合并为合法 JSON 对象,不要覆盖整块

标尺配合什么才真正有用

标尺本身只是尺子,不帮你划线。要让代码真正在 80 列内,得靠其他机制协同。

  • "word_wrap": "auto" + "wrap_width": 80:开启软换行并指定折行列,但仅影响视觉,源码仍是单行长行
  • 搭配 linter:ESLint 的 max-len、Flake8 的 E501 才会在超长时报错
  • 配合格式化工具:Black(Python)、Prettier(JS)会在保存时自动折行,这时标尺就变成“校验线”而非“提醒线”
  • 别指望改 rulers 能解决缩进混乱问题:Tab 和空格混用会导致列数计算偏移,先统一用 "translate_tabs_to_spaces": true

标尺线颜色无法原生修改,主题决定灰度深浅;想高亮或加粗?得靠插件(如 BracketHighlighter 的 ruler 扩展),但多数场景下,够用就行。

text=ZqhQzanResources