Emacsからシェルスクリプトをインポートする

Emacsからシェルスクリプトをインポートする

私の考えでは源泉Emacs内で環境変数を変更するシェルスクリプトです。つまり、シェルスクリプトがEmacsが実行されている環境を変更できるようにしたいので、実行中のEmacsセッション内でこれを実行したいと思います。

言い換えれば:

  1. 私はEmacsを起動します。zsh
  2. zshEmacsで次の環境変数を変更するスクリプトを取得したいと思います。LD_LIBRARY_PATH

背景:

これは私が説明した問題を避ける試みです。ここ、私が必要な場所に置く LD_LIBRARY_PATHEmacsを実行するには未設定特定のPythonディストリビューション(Python)。

特にEmacsパッケージ(Emacs Jedi)このPythonディストリビューションへのアクセスが必要ですが、現在は未設定 LD_LIBRARY_PATHEmacsを始めましょう。置く後でEmacsで使用できますemacs-jedi

これは可能ですか?

ベストアンサー1

スクリプトを取得するためにサブシェルを呼び出すたびに、Emacsアプリケーションを起動した元のプロセスからサブプロセスを呼び出すので、これは可能ではないと思います。

環境変数のエクスポートは一方向の方法です。親プロセスだけが子プロセスに変数を提供できますが、子プロセスは親プロセスの環境を操作できません。

実験

使用中ですが、.sourceサンプルファイルvimにも同様に適用する必要があります。emacs

$ more ~/vars.bash 
export VAR=somevalue
  1. 初期の親環境が$VAR設定されていません。

    $ echo $VAR
    
    $
    
  2. 解放vim。次に、サブシェルを呼び出して上記のファイル(:sh)を取得します。

    # check variable
    $ echo $VAR
    
    $
    
    # source and re-check
    $ source ~/vars.bash
    $ echo $VAR
    somevalue
    
  3. サブシェルを終了してvimに戻ります。次に、別のサブシェル(:sh)を呼び出します。

    $ exit
    
    ... back in vim, do another `:sh` ...
    
    # check variable
    $ echo $VAR
    
    $ 
    

おすすめ記事