带有开发容器的 Emacs 工作流程
Emacs workflow with development containers
Emacs 新手,最近一直在努力适应它。到目前为止爱它!
有一件事我自己似乎无法弄清楚,也找不到任何适当的例子来说明如何弄清楚以下工作流程:
由于我在多个不同语言的项目上工作,并且喜欢在我的 OS 中尽可能将我的工作和私人项目分开,我一直在使用 docker 和 VScode 过去几年。
这让我可以将我的项目依赖项和开发工具都保存在一个容器中,我只是将我的 VScode 实例附加到一个项目,并从中使用语言服务器/linting/调试等扩展容器。
目前我可以在 emacs 中打开我的项目,因为代码是本地的并安装到容器中,但我正在寻找一种方法:
- 允许我的本地 emacs 使用容器中安装的 language/linting/debugging 服务。
- 在开发容器中安装 emacs 并装载我的配置以保持同步。
- 或更好的选择?
最有价值的是让语言服务器重新工作。
以防万一,我正在 Arch 上的 DOOM Emacs 中工作。主要是 Python、PHP 和 NodeJS 项目。
... use the language/linting/debugging services installed in the container
设计这很难用Docker做到:设计主机系统不能直接访问文件或安装在容器中的二进制文件。如果没有很多关于绑定挂载和用户 ID 以及路径和权限的技巧,就很难 运行 容器中的程序看起来就像在主机系统上一样。一些工具内置了这些技巧,但并不通用。 (例如,如果您要求 Jenkins 在容器中 运行 一步,它会生成大约 5 行的 docker run
命令选项。)
使用 host-based per-language 版本管理器和 per-project 打包工具(per-project node_modules
目录,rbenv
加上 Ruby gem 集,pipenv
用于 Python 程序,...).
简而言之:Emacs 不能使用 Docker 图像中的语言服务器、语言解释器或其他工具来代替主机系统(无需编写大量 Lisp(如果您确实考虑将其发布到MELPA(以及GitHub))。
Most valuable would be to get language servers working again.
M-x lsp-install-server
将下载 lsp-mode
知道的语言服务器之一,并将其保存在您的 $HOME/.emacs
目录中。如果你激活 lsp-mode
并且它还没有当前主要模式的语言服务器,它会为你下载它。平时没什么可“上班”的。
Emacs 新手,最近一直在努力适应它。到目前为止爱它!
有一件事我自己似乎无法弄清楚,也找不到任何适当的例子来说明如何弄清楚以下工作流程:
由于我在多个不同语言的项目上工作,并且喜欢在我的 OS 中尽可能将我的工作和私人项目分开,我一直在使用 docker 和 VScode 过去几年。
这让我可以将我的项目依赖项和开发工具都保存在一个容器中,我只是将我的 VScode 实例附加到一个项目,并从中使用语言服务器/linting/调试等扩展容器。
目前我可以在 emacs 中打开我的项目,因为代码是本地的并安装到容器中,但我正在寻找一种方法:
- 允许我的本地 emacs 使用容器中安装的 language/linting/debugging 服务。
- 在开发容器中安装 emacs 并装载我的配置以保持同步。
- 或更好的选择?
最有价值的是让语言服务器重新工作。
以防万一,我正在 Arch 上的 DOOM Emacs 中工作。主要是 Python、PHP 和 NodeJS 项目。
... use the language/linting/debugging services installed in the container
设计这很难用Docker做到:设计主机系统不能直接访问文件或安装在容器中的二进制文件。如果没有很多关于绑定挂载和用户 ID 以及路径和权限的技巧,就很难 运行 容器中的程序看起来就像在主机系统上一样。一些工具内置了这些技巧,但并不通用。 (例如,如果您要求 Jenkins 在容器中 运行 一步,它会生成大约 5 行的 docker run
命令选项。)
使用 host-based per-language 版本管理器和 per-project 打包工具(per-project node_modules
目录,rbenv
加上 Ruby gem 集,pipenv
用于 Python 程序,...).
简而言之:Emacs 不能使用 Docker 图像中的语言服务器、语言解释器或其他工具来代替主机系统(无需编写大量 Lisp(如果您确实考虑将其发布到MELPA(以及GitHub))。
Most valuable would be to get language servers working again.
M-x lsp-install-server
将下载 lsp-mode
知道的语言服务器之一,并将其保存在您的 $HOME/.emacs
目录中。如果你激活 lsp-mode
并且它还没有当前主要模式的语言服务器,它会为你下载它。平时没什么可“上班”的。