杰瑞科技汇

Sublime Python自动补全怎么配置?

Sublime Text 本身的自动补全功能相对基础,但通过安装几个核心插件,我们可以把它打造成一个媲美专业 IDE 的开发环境。

核心思想

Sublime Text 的自动补全主要依赖于 LSP (Language Server Protocol) 协议,它通过一个后台服务(语言服务器)来分析你的代码,然后提供智能的代码补全、错误检查、跳转定义等功能。

对于 Python,最核心的语言服务器是 Pylance (由微软开发,非常强大) 或 Pyright


第一步:安装必要的插件

我们需要安装三个关键插件:

  1. LSP: 这是 LSP 协议的核心插件,负责与各种语言服务器通信。
  2. LSP-pylance: 这是 Pylance 语言服务器的 Sublime 插件,Pylance 提供顶级的 Python 支持,包括类型提示、自动导入、代码检查等。
  3. Anaconda: 这是一个非常流行的 Python 开发插件,它提供了许多有用的功能,如代码片段、Goto Definition、Linter 等,虽然我们主要用 LSP-pylance 做补全,但 Anaconda 的其他功能依然很有用。

如何安装插件?

  1. 打开 Sublime Text。
  2. Ctrl + Shift + P (Windows/Linux) 或 Cmd + Shift + P (Mac) 打开命令面板。
  3. 输入 Package Control: Install Package 并回车。
  4. 等待包列表加载完成后,依次搜索并安装以下插件:
    • LSP
    • LSP-pylance
    • Anaconda

第二步:配置 Python 解释器

这是最关键的一步!Sublime Text 需要知道你的 Python 代码应该用哪个 Python 环境来解释和检查,如果你不配置,它可能会使用系统自带的旧版 Python,导致很多库无法识别。

使用 LSP-pylance 的内置配置(推荐)

  1. 打开一个 .py 文件。
  2. Ctrl + Shift + P (Windows/Linux) 或 Cmd + Shift + P (Mac) 打开命令面板。
  3. 输入 LSP: Select Interpreter 并回车。
  4. Sublime Text 会自动搜索你系统中安装的所有 Python 环境(包括 Conda 环境),并列出它们。
  5. 从列表中选择你当前项目所使用的 Python 解释器,选择一个虚拟环境中的 python.exe

选择后,状态栏(Sublime 窗口最下方)会显示当前使用的解释器路径。

使用 Anaconda 的配置(备选)

如果你更习惯使用 Anaconda 的方式,也可以通过以下方式配置:

  1. Ctrl + Shift + P (Windows/Linux) 或 Cmd + Shift + P (Mac) 打开命令面板。
  2. 输入 Anaconda: Select Interpreter 并回车。
  3. 同样,它会列出可用的 Python 环境,供你选择。

建议: 优先使用 LSP: Select Interpreter,因为这是为 Pylance 服务配置的,能保证最好的补全效果。


第三步:配置自动补全触发方式

Sublime Text 的默认补全触发方式是 Tab 键,这可能会和缩进冲突,我们通常希望输入几个字母后自动弹出补全建议。

  1. 打开 Sublime Text 的用户配置文件。

    • Ctrl + Shift + P (Windows/Linux) 或 Cmd + Shift + P (Mac)。
    • 输入 Preferences: Settings 并回车。
    • 在打开的设置中,点击右上角的 图标,选择 Preferences: Settings - User(重要:不要修改 Default Settings
  2. 在用户设置文件中,添加或修改以下配置:

{
    // 关闭 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。

  1. 打开或创建一个 Python 文件。
  2. 确保你已经通过 LSP: Select Interpreter 选择了正确的 Python 环境。
  3. 输入 import requests,然后按回车。
  4. 在下一行,输入 requests.,你应该会立即看到一个包含所有可用方法(如 get, post, Session 等)的智能补全列表。
  5. 继续输入 req,列表会自动过滤,只显示匹配的项。
  6. 使用 TabEnter 键选择你想要的方法。

你还可以尝试输入一个你项目中已经定义的类名或函数名,然后输入 ,它也能正确提供补全。


高级与常见问题

如何修复 "LSP: pylance failed to start" 错误?

这个错误通常意味着 Pylance 语言服务器没有找到或无法启动。

  • 解决方案:
    1. 确保你已经安装了 Python。
    2. 通过 pip 安装 pylancepip install pylance
    3. 在 Sublime 中,按 Ctrl + Shift + P,输入 LSP: Log LSP,查看日志文件,里面通常有更详细的错误信息。

如何配置代码格式化(自动排版)?

Pylance 也支持代码格式化,推荐使用 black 作为格式化工具。

  1. 安装 black:pip install black
  2. 在 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 自动补全变得强大,核心流程就是:

  1. 装插件LSP, LSP-pylance, Anaconda
  2. 选解释器LSP: Select Interpreter,选对项目的 Python 环境。
  3. 改配置:在用户设置中,关闭原生补全,配置 auto_complete_triggers 来触发 LSP 补全。
  4. 重启:重启 Sublime Text 让配置生效。

完成这些步骤后,你将拥有一个轻量、快速且功能强大的 Python 开发环境。

分享:
扫描分享到社交APP
上一篇
下一篇