4

emacs GUI を起動すると、.zshrc によっては PATH が設定されません。.zshrc を正しく設定するにはどうすればよいですか?

編集: swank-clojure を使用しようとしていますが、 にないため lein を見つけることができませんPATH

4

6 に答える 6

4

この回答は、後でこの質問を見つけ、MacでのEmacsのデフォルトの動作が原因でこの問題が発生している人を対象としています。

Macを使用していて、emacsをシェルから開始する方法を知りたい場合は、カスタマイズしたENVをテキストのみではなくグラフィカルモードで取得し、zshから次のように開始します。

 /Applications/Emacs.app/Contents/MacOS/Emacs  

これにより、emacsはすべてのシェル(zshまたはその他)のカスタマイズを認識します。

于 2012-02-24T18:08:20.283 に答える
4

FWIW、この問題は Mac OS X に固有のものではありません。GUI のメニューバーから Emacs を起動すると、通常、コマンドから起動されたものと同じ PATH を持たない Emacs になる GNU/Linux システムにも影響するためです。ライン。この問題は、最初の「xdm」Xsession スクリプトにさかのぼります。修正はかなり簡単ですが (基本的には、ユーザーの Xsession を実行する前にシェルが実行されるように、「exec $SHELL -c Xsession」を実行する Xsessionwrapper スクリプトを使用します)。私たちは20年後、同じ古い問題に苦しんでいます。そしてどういうわけか、gdm3がこれを修正するとは思わない;-(

于 2012-02-25T05:22:45.613 に答える
2

Mac OS X には、特定のユーザーが起動したプロセスの環境変数を設定できる特別な環境ファイルがあります。これにより、GUI アプリの環境変数を設定できます。あなたの場合、これを使用して、ドックまたはファインダーのアイコンをクリックして起動したemacsのPATHを設定できます。

このファイルは次の場所にあります

~/.MacOSX/environment.plist

XCode でファイルを作成できますが、単純な xml であるため、ファイルの内容は次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>PATH</key>
    <string>~/bin:/usr/local/bin:/usr/local/sbin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:</string>
</dict>
</plist>
于 2012-02-25T18:53:17.987 に答える
1

Emacs がPATHisの代わりに使用する変数はexec-path(C-h v exec-path RETドキュメントと状態のために) 呼び出されます。またはexec-pathから初期化されます。から Emacs を起動していないように見えるため、Emacs パスがシェル内のものと正確に一致しません。PATHEMACSPATHzsh

またはで設定exec-pathしてみてください。ただし、両方を維持する必要があります。シェル構成を直接ソースする方法はわかりませんが、パスを正規表現するだけでよいかもしれません。.emacsinit.el

于 2012-02-24T17:54:09.557 に答える
0

ファイル内で PATH 変数を指定することもできます。これは、.zshenvサブシェルに環境を割り当てるための推奨規則です。zsh がユーザーのデフォルト シェルとして構成されている限り、emacs が.zshenvどのように呼び出されても、emacs はあなたをソースします。

于 2016-09-28T20:06:41.483 に答える