2

私は次のことを試しました:

(setenv "PATH" (concat (getenv "PATH") ":~/mybin"))
(setq exec-path (append exec-path '(":~/mybin")))

しかし、それはうまくいきませんでした。やってみたM~!バイナリ名の1つを入力すると、バイナリ名でMxコンパイルを実行したときにも「不明なコマンド」が表示され、同じ結果が得られました。Mx compile then echo $PATH は、 ~/mybin フォルダーを含まないパスを指定しました。私はソラリスにいます。私は何を間違っていますか?

4

2 に答える 2

5

:exec-path には必要ありません。exec-pathディレクトリパスのリストです。また、絶対パスを使用する必要があります。以下のように修正する必要があります。

(setenv "PATH" (concat (getenv "PATH") ":" (expand-file-name "~/mybin")))
(setq exec-path (append exec-path (list (expand-file-name "~/mybin")))

Emacs への PATH の設定にはexec-path-from-shellを使用することをお勧めします。ログイン シェルから環境変数を取得し、それらを Emacs に設定する関数を提供します。Emacs とシェルの間で環境変数を共有するのは簡単です。

于 2013-08-23T00:56:30.403 に答える
1

emacs$PATHが存在しません。$PATHシェル変数です。Emacs とシェルは名前空間が異なります。

ただし、Emacs は getenv、setenv を介して $PATH を読み取って設定する可能性があるため、アクセスしたライブラリを調べる以外に方法はないようです。

よりも exec-path を使用することをお勧めします。

これを行う例:

(add-to-list 'exec-path "FULL_PATH_TO_BIN"))
于 2013-08-23T06:56:27.737 に答える