6

Terminatorを使用すると、ユーザーは構成ファイル内でレイアウトを定義できます。これらのレイアウトを使用して、ユーザーは起動時に実行するコマンドを設定できます。したがって、たとえば、次のように端末が自動的に実行されるレイアウトを作成できます(端末が閉じないようにlsするコマンドに注意してください)。bash

command = "ls; bash"

では、代わりに Terminator に Python 仮想環境をロードさせるにはどうすればよいでしょうか? もちろん、環境がロードされた状態で bash コンソールをアクティブに保ちます。

ノート

些細な方法:

command = "workon my_env; bash"

またはそれsource my_env/bin/activateと同等のもの ( を使用しない場合virtualenvwrapper) は機能しません。

4

1 に答える 1

10

秘訣は、「1 つの」コマンドだけですべてを行うことですbash。その-iオプション (インタラクティブ) を利用し、実行したいものに設定され--rcfileたカスタムを使用します。PROMPT_COMMAND結果は次のようになります。

command = "bash --rcfile <(cat ${HOME}/.bashrc; echo 'export PROMPT_COMMAND="workon my_env; unset PROMPT_COMMAND"') -i"

説明

  • bash対話型 ( -i) モードで実行します。
  • ではなく、カスタム コマンド ファイル ( --rcfile)からコマンドを実行します.bashrc
  • このファイルは、.bashrcさらにもう 1 つのコマンドの内容で作成されます。
  • PROMPT_COMMANDこの追加のコマンドは、「実行したいものは何でも」という値でエクスポートします。この場合: workon my_env.
  • PROMPT_COMMAND、シェルとの対話のたびに複数回実行されるのを避けるために、最初に実行された直後に設定解除されます。

パーツを編集するだけで、カスタム コマンドを簡単に拡張できますworkon my_env。したがって、たとえば、ls仮想環境のロードから appart を自動的に実行する場合は、workon my_env; ls代わりに次のように記述します。

于 2015-07-20T19:33:16.993 に答える