我正试图让lsp (这取决于国家预防机制)与我的弱点。
经过一些修改后,我通过手动运行. /usr/share/nvm/nvm.sh,然后在一个交互的shell中运行emacs --daemon,成功地使lsp工作起来。
但是,我不希望在交互式shell中手动运行emacs --daemon。
下面是我已经尝试过的,如果有人能指出我所做的不对的原因,我会很感激的。
尝试#1更新systemd单元文件:
将ExecStartPre=/bin/bash /usr/share/nvm/nvm.sh添加到emacs.service
结果 (executable-find "node")返回nil
尝试#2在.spacemacs中添加硬代码路径
(setq exec-path (append exec-path '("~/.local/share/nvm/versions/node/v10.18.0/bin")))
结果 (executable-find "node")返回"~/.local/share/nvm/versions/node/v10.18.0/bin/node",但仍要连接到lsp服务器。
尝试#3使用bspwm来自动生成emacs,而不是systemd:
将$(. "/usr/share/nvm/nvm.sh" && emacs --daemon)附加到bspwmrc
结果 (executable-find "node")返回"nil"
发布于 2020-02-23 18:16:05
就目前而言,我将坚持第二次调度。
我意识到如果我使用~而不是/home/user,它是行不通的
因此,以下内容应能奏效。
(setq exec-path
(append exec-path
(list (concat user-home-directory ".local/share/nvm/versions/node/v10.18.0/bin"))))就目前而言,这是我设法找到的最佳解决方案。
发布于 2020-02-22 06:17:43
尝试#4更新zshrc
if [[ -z $(pgrep emacs) ]]; then
. "/usr/share/nvm/nvm.sh" &> /dev/null
emacs --daemon &> /dev/null
firesult 终于起作用了,但它将导致我的zsh第一次启动时出现一些延迟。
除了这个,还有更好的解决办法吗?
理想情况下,最好选择守护进程开始使用systemd,否则,在重新启动期间,它不会优雅地停止:
https://stackoverflow.com/questions/60349483
复制相似问题