subl命令不可用是因PATH未包含其路径,需软链接或修改shell配置;中文乱码需禁用自动编码探测并设UTF-8为默认;Ctrl+P支持文件/行号/符号三类跳转;原生可实现极客记事本功能。

subl 命令不可用?先确认 PATH 和二进制位置
安装完 Sublime Text 后在终端敲 subl 报 “command not found”,不是安装失败,而是 shell 找不到可执行文件。Ubuntu/Debian 系统默认把 subl 放在 /opt/sublime_text/subl,但该路径未加入 $PATH。
验证方式:运行 ls /opt/sublime_text/subl,如果存在,说明已安装成功;若提示“No such file”,请先完成官方仓库安装流程(含 GPG 导入和 apt install sublime-text)。
修复方法(任选其一):
- 软链接到
/usr/local/bin:sudo ln -sf /opt/sublime_text/subl /usr/local/bin/subl - 或在
~/.bashrc或~/.zshrc末尾加一行:export PATH="/opt/sublime_text:$PATH",然后source ~/.bashrc
注意:不要用 which subl 判断是否生效——它缓存旧结果;改完后新开一个终端再试。
中文乱码、保存为 UTF-8-BOM?关掉自动编码探测
Sublime 默认启用 detect_indentation 和 fallback_encoding,遇到无 BOM 的 GBK 文件会误判为 UTF-8,导致中文显示为方块;反过来,编辑完再保存,又可能被强行转成带 BOM 的 UTF-8,破坏脚本可执行性(比如 shebang 失效)。
解决路径是关闭“自动猜”行为,在 Preferences → Settings 右侧面板添加:
{
"default_encoding": "UTF-8",
"fallback_encoding": "UTF-8",
"detect_indentation": false,
"ensure_newline_at_eof_on_save": true,
"trim_trailing_white_space_on_save": true
}关键点:
-
fallback_encoding设为"UTF-8"而非"Western (Windows 1252)",避免打开旧文档时崩坏 - 禁用
detect_indentation后,缩进风格(tab vs space)需手动设:右下角点击 “Tab Size: 4” → “Convert Indentation to Spaces” - 不推荐勾选 “Save with UTF-8-BOM”,尤其写 Shell/Python 脚本时,BOM 会让
#!/usr/bin/env python3解析失败
快速跳转文件/符号/行号:Ctrl+P 不只是搜文件名
Ctrl+P(Goto Anything)是 Sublime 最被低估的效率开关,但多数人只用它开文件。它实际支持三类定位语法,用冒号分隔:
- 文件名模糊匹配:
main.py、conf(自动匹配config.json) - 行号跳转:
readme.md:42→ 直接跳到第 42 行 - 符号搜索:
MyClass@init或utils.js@fetchData→ 定位函数/类定义(需语言插件支持)
注意:
- 符号搜索依赖语法高亮引擎识别结构,纯文本文件(
Plain Text)不支持@查找;切换为JavaScript或Python语法后才生效 - 首次使用
@功能前,建议先装CTags插件并生成 tags 文件,否则仅能识别简单函数声明 - 输入过程中按
↑↓可浏览历史记录,Ctrl+R单独唤出符号列表(当前文件内)
不用插件也能做极客记事本:原生功能组合技
所谓“极客记事本”,核心是快速捕获、结构化归档、低干扰回顾。Sublime 原生能力已足够,不必强上 Obsidian 风插件:
- 用
Ctrl+Shift+P→ “Set Syntax: Markdown” 把任意文件切为 Markdown,配合预览插件(如MarkdownPreview)即可实时渲染 - 新建笔记模板:Preferences → Browse Packages → User → 新建
Notes.sublime-snippet,内容为:
<![CDATA[<snippet><content><![CDATA[# ${1:Title}
<ul><li>Created: ${2:${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DAY}}</li><li>Tags: ${3:}</li></ul><p>${4:Content}
]]></content></p><tabTrigger>note</tabTrigger><scope>text.html.markdown</scope></snippet>]]>之后在 Markdown 文件中输入 note + Tab,自动展开带时间戳和占位符的结构。
最后提醒一个易忽略点:Sublime 的侧边栏(Sidebar)默认不记忆折叠状态。如果项目笔记分散在多个子目录,每次重启都要手动收起无关文件夹——这不是 bug,是设计。解决方案只有两个:Project → Save Project As… 保存带折叠状态的项目文件,或直接用 File → Open Folder 打开单个笔记目录,避开多级嵌套。


















