Получение npm для работы с spacemacs в режиме демона - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь заставить lsp (это зависит от npm) работать с моим истощением.

После некоторой обработки мне удается заставить работать lsp, запустив . /usr/share/nvm/nvm.sh затем emacs --daemon в интерактивной оболочке вручную.

Однако я не хочу запускать emacs --daemon вручную в интерактивной оболочке.

Ниже показано, что я пробовал до сих пор, буду признателен, если кто-то может указать, почему у меня есть выполняется неправильно.


Попытка # 1 Обновление файла системного модуля:

добавление ExecStartPre=/bin/bash /usr/share/nvm/nvm.sh к emacs.service

Результат (executable-find "node") возвращает nil


Попытка # 2 Добавить жесткий путь PATH в .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"

Ответы [ 2 ]

0 голосов
/ 23 февраля 2020

Пока я буду придерживаться попытки №2.

Я понимаю, что это не работает, если я использую ~ вместо /home/user

Таким образом, следующее должно работать.

  (setq exec-path
        (append exec-path
                (list (concat user-home-directory ".local/share/nvm/versions/node/v10.18.0/bin"))))

На данный момент это лучшее решение, которое мне удается найти.

0 голосов
/ 22 февраля 2020

Попытка # 4 Обновление zshrc:

if [[ -z $(pgrep emacs) ]]; then
    . "/usr/share/nvm/nvm.sh" &> /dev/null 
    emacs --daemon &> /dev/null
fi

Результат Наконец-то работает, но это приведет к некоторой задержке при первом запуске моего zsh.

Есть ли лучший обходной путь, кроме этого?

В идеале, демон предпочтительно начать использовать systemd, иначе при перезагрузке он не остановится изящно: (

...