Sublime Text 本身的自动补全功能相对基础,但通过安装几个核心插件,我们可以把它打造成一个媲美专业 IDE 的开发环境。
核心思想
Sublime Text 的自动补全主要依赖于 LSP (Language Server Protocol) 协议,它通过一个后台服务(语言服务器)来分析你的代码,然后提供智能的代码补全、错误检查、跳转定义等功能。
对于 Python,最核心的语言服务器是 Pylance (由微软开发,非常强大) 或 Pyright。
第一步:安装必要的插件
我们需要安装三个关键插件:
- LSP: 这是 LSP 协议的核心插件,负责与各种语言服务器通信。
- LSP-pylance: 这是 Pylance 语言服务器的 Sublime 插件,Pylance 提供顶级的 Python 支持,包括类型提示、自动导入、代码检查等。
- Anaconda: 这是一个非常流行的 Python 开发插件,它提供了许多有用的功能,如代码片段、Goto Definition、Linter 等,虽然我们主要用 LSP-pylance 做补全,但 Anaconda 的其他功能依然很有用。
如何安装插件?
- 打开 Sublime Text。
- 按
Ctrl + Shift + P(Windows/Linux) 或Cmd + Shift + P(Mac) 打开命令面板。 - 输入
Package Control: Install Package并回车。 - 等待包列表加载完成后,依次搜索并安装以下插件:
LSPLSP-pylanceAnaconda
第二步:配置 Python 解释器
这是最关键的一步!Sublime Text 需要知道你的 Python 代码应该用哪个 Python 环境来解释和检查,如果你不配置,它可能会使用系统自带的旧版 Python,导致很多库无法识别。
使用 LSP-pylance 的内置配置(推荐)
- 打开一个
.py文件。 - 按
Ctrl + Shift + P(Windows/Linux) 或Cmd + Shift + P(Mac) 打开命令面板。 - 输入
LSP: Select Interpreter并回车。 - Sublime Text 会自动搜索你系统中安装的所有 Python 环境(包括 Conda 环境),并列出它们。
- 从列表中选择你当前项目所使用的 Python 解释器,选择一个虚拟环境中的
python.exe。
选择后,状态栏(Sublime 窗口最下方)会显示当前使用的解释器路径。
使用 Anaconda 的配置(备选)
如果你更习惯使用 Anaconda 的方式,也可以通过以下方式配置:
- 按
Ctrl + Shift + P(Windows/Linux) 或Cmd + Shift + P(Mac) 打开命令面板。 - 输入
Anaconda: Select Interpreter并回车。 - 同样,它会列出可用的 Python 环境,供你选择。
建议: 优先使用 LSP: Select Interpreter,因为这是为 Pylance 服务配置的,能保证最好的补全效果。
第三步:配置自动补全触发方式
Sublime Text 的默认补全触发方式是 Tab 键,这可能会和缩进冲突,我们通常希望输入几个字母后自动弹出补全建议。
-
打开 Sublime Text 的用户配置文件。
- 按
Ctrl + Shift + P(Windows/Linux) 或Cmd + Shift + P(Mac)。 - 输入
Preferences: Settings并回车。 - 在打开的设置中,点击右上角的 图标,选择
Preferences: Settings - User。(重要:不要修改Default Settings)
- 按
-
在用户设置文件中,添加或修改以下配置:
{
// 关闭 Sublime 原始的基于单词的自动补全,避免和 LSP 补全冲突
"auto_complete": false,
// 使用 Tab 键来接受 LSP 提供的补全建议
"tab_completion": true,
// 当输入这些字符时,自动触发 LSP 的补全建议
"auto_complete_triggers":
[
{
"characters": ".",
"selector": "source.python"
},
{
"characters": " ",
"selector": "source.python"
}
],
// 设置 LSP 的自动补全优先级高于 Sublime 原生补全
"lsp_format_on_save": true,
"auto_complete_selector": "source.python"
}
配置解释:
"auto_complete": false: 关闭 Sublime 自带的、不够智能的补全。"tab_completion": true: 允许使用Tab键来接受补全项。"auto_complete_triggers": 这是最重要的部分,它告诉 Sublime,当你在 Python 文件中(source.python)输入 或空格` 时,就去触发 LSP 服务来获取补全建议,你也可以添加其他字符,如(或=`。
第四步:验证和享受成果
完成以上配置后,重启 Sublime Text。
- 打开或创建一个 Python 文件。
- 确保你已经通过
LSP: Select Interpreter选择了正确的 Python 环境。 - 输入
import requests,然后按回车。 - 在下一行,输入
requests.,你应该会立即看到一个包含所有可用方法(如get,post,Session等)的智能补全列表。 - 继续输入
req,列表会自动过滤,只显示匹配的项。 - 使用
Tab或Enter键选择你想要的方法。
你还可以尝试输入一个你项目中已经定义的类名或函数名,然后输入 ,它也能正确提供补全。
高级与常见问题
如何修复 "LSP: pylance failed to start" 错误?
这个错误通常意味着 Pylance 语言服务器没有找到或无法启动。
- 解决方案:
- 确保你已经安装了 Python。
- 通过
pip安装pylance:pip install pylance - 在 Sublime 中,按
Ctrl + Shift + P,输入LSP: Log LSP,查看日志文件,里面通常有更详细的错误信息。
如何配置代码格式化(自动排版)?
Pylance 也支持代码格式化,推荐使用 black 作为格式化工具。
- 安装 black:
pip install black - 在 Sublime 的用户设置中添加:
{
"lsp_format_on_save": true,
"lsp_code_actions_on_save": {
"source.organizeImports": true // 自动整理导入语句
},
"lsp": {
"pylance": {
"settings": {
"python.analysis.typeCheckingMode": "basic" // 可以设置为 "off", "basic", "strict"
}
}
}
}
这样,每次保存文件时,代码会自动按照 black 的风格进行格式化,并自动整理 import 语句。
Anaconda 和 LSP 冲突吗?
通常不会,但它们可能会提供类似的功能(如 Goto Definition),你可以根据自己的喜好决定启用哪些功能,LSP-pylance 在代码补全和静态分析方面通常更现代、更强大。
要让 Sublime Text 的 Python 自动补全变得强大,核心流程就是:
- 装插件:
LSP,LSP-pylance,Anaconda。 - 选解释器:
LSP: Select Interpreter,选对项目的 Python 环境。 - 改配置:在用户设置中,关闭原生补全,配置
auto_complete_triggers来触发 LSP 补全。 - 重启:重启 Sublime Text 让配置生效。
完成这些步骤后,你将拥有一个轻量、快速且功能强大的 Python 开发环境。
