使用外部的文本编辑器

本页面讲述的是如何使用外部文本编辑器编写代码。

备注

要在外部编辑器中编写 C#,请查看为 C# 配置外部编辑器的指南

Godot 可以与 Sublime Text、Visual Studio Code 等外部文本编辑器一起使用。在编辑器中浏览相关设置:编辑器 -> 编辑器设置 -> 文本编辑器 -> 外部

文本编辑器 > 编辑器设置的外部部分

编辑器设置中的 文本编辑器 > 外部 部分

有两个文本字段:可执行文件路径和执行参数(标志)。这些标志允许你将编辑器与 Godot 集成在一起,并向其传递要打开的文件路径和其他相关参数。Godot 将替换参数字符串中的以下占位符:

Exec 标志中的字段

被替换为

{project}

项目目录的绝对路径

{file}

文件的绝对路径

{col}

错误的列号

{line}

错误的行号

一些编辑器的 Exec 标志 示例:

编辑器

Exec 标志

Geany/Kate

{file} --line {line} --column {col}

Atom

{file}:{line}

JetBrains Rider

{project} --line {line} {file}

Visual Studio Code

{project} --goto {file}:{line}:{col}

Vim (gVim)

"+call cursor({line}, {col})" {file}

Emacs

emacs +{line}:{col} {file}

Sublime Text/Zed

{project} {file}:{line}:{col}

Visual Studio*

/edit "{file}"

*: 参数不会被自动识别,因此必须手动填写。

自 Godot 4.5 起,Exec Flags 已支持自动检测上述所有编辑器(标有星号*的除外)。除非编辑器可执行文件名未被自动识别(如列出的编辑器分支版本),否则无需从本页复制参数。

备注

对于 Windows 平台上的 Visual Studio Code,你需要指向 code.cmd 文件。

对于 Emacs,如果你使用的是服务器模式,那么调用的时候就可以用 emacsclient 代替 emacs

对于 Visual Studio,你需要手动打开解决方案文件 .sln 才能使用 IDE 的功能。此外,它不会跳转到特定的代码行。

自动重新加载修改

要让 Godot 编辑器在外部文本编辑器修改脚本后自动重新加载,请启用编辑器 > 编辑器设置 > 文本编辑器 > 行为 > 在外部更改时自动重新加载脚本

在调试器中使用外部编辑器

在调试器中使用外部编辑器由设置中的单独选项决定。更多细节详见 脚本编辑器调试工具及选项

官方编辑器插件

以下代码编辑器有官方插件:

LSP/DAP 支持

Godot 支持用于代码补全的语言服务器协议LSP)和用于调试的调试适配器协议DAP)。请查看 LSP 客户端列表DAP 客户端列表,确认你的编辑器是否支持这两个协议。如果支持,那么应该不借助自定义插件就可以利用到对应的功能。

要使用这些协议,必须存在运行当前项目的 Godot 实例。然后,你应该对编辑器进行配置,让它与 Godot 中运行的适配器端口通信,默认的 LSP 端口为 6005DAP端口为 6006。你可以在编辑器设置中修改这些端口和其他设置,对应的部分为网络 > 语言服务器网络 > 调试适配器

以下是特定编辑器的一些配置步骤:

Visual Studio Code

你需要安装官方`Visual Studio Code 插件 <https://github.com/godotengine/godot-vscode-plugin>`_。

对于 LSP ,请按照 这些说明 更改默认 LSP 端口。可通过状态栏查看连接状态:

../../_images/lsp_vscode_status.png

对于 DAP ,请在你的 launch.json 文件中指定 debugServer 属性:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "GDScript Godot",
            "type": "godot",
            "request": "launch",
            "project": "${workspaceFolder}",
            "port": 6007,
            "debugServer": 6006,
        }
    ]
}

Emacs

请查看官方说明来配置 LSPDAP.