emacs lsp c-mode: Команда "clangd" отсутствует на пути
Я хочу использовать c-режим Emacs LSP, но получаю сообщение об ошибке "Команда" clangd "отсутствует на пути".
Для установки я сделал следующие шаги:
- Получите пакет lsp от melpa-stable
- Получите company-lsp от melpa-stable
- Получите ccls, используя homebrew
Добавьте в мой файл.emacs следующее:
(require 'lsp-mode)(add-hook'rust-mode-hook #'lsp)(add-hook'c-mode-hook #'lsp)(require'company-lsp)(push 'company-lsp company- бэкэнды)
Я установил llvm (который должен включать clang) с помощью homebrew и добавил его путь в качестве переменной среды.
Кто-нибудь знает, почему я получаю эту ошибку?
1 ответ
Мне только что удалось его настроить.
Проблема в том, что в os x ваши переменные окружения не импортируются правильно при использовании графического интерфейса emacs. В частности, если вы попробуете оценить в своем emacs
(getenv "PATH")
вы получите результат, отличный от того, который вы получите, запустив
echo $PATH
в вашем терминале.
Я решил это, установив https://github.com/purcell/exec-path-from-shell, как предлагается здесь.
Наконец, дважды проверьте (даже если вы упомянули, что сделали это), что вы не только установили llvm, но и правильно добавили его в свой путь, запустив
brew install llvm
ln -s "$(brew --prefix llvm)/bin/clangd" "/usr/local/bin/clangd"
как предлагается здесь