Bash、ZSH、Fish、tcsh 用の美しく便利なプロンプト ジェネレーター:
生成されるプロンプトは電力線に似るように設計されていますが、それ以外の点では、このプロジェクトは電力線とは関係ありません。
DocToc で生成された目次
powerline シェルでサポートされているすべてのバージョン管理システムを使用すると、リポジトリの状態を簡単に確認できます。
⇡
または⇣
とともに表示されます。ファイルが変更されているか競合している場合、その状況は次の記号で要約されます。
✎
-- ファイルが変更されました (ただし、git ではコミット用にステージングされていません)✔
-- ファイルはコミット (git) のためにステージングされるか、追跡のために追加されます。✼
-- ファイルに競合があります?
-- ファイルは追跡されていません複数のファイルが一致する場合、それぞれの横に番号が表示されます。
セグメントは、使用されているバージョン管理システムを表すシンボルで始めることができます。このシンボルを表示するには、構成ファイルに変数vcs
があり、 show_symbol
オプションがtrue
に設定されている必要があります (セグメント構成を参照)。
このスクリプトは、ANSI カラー コードを使用して端末に色を表示します。これらは移植性がないことで知られているため、そのままでは機能しない可能性がありますが、 $TERM をxterm-256color
に設定してみてください。
端末に使用するフォントにパッチを適用します: powerline-fonts を参照してください。
pip を使用してインストールします。
pip install powerline-shell
(必要に応じて--user
オプションを使用して、自分のユーザーのみにインストールできます。ただし、これを適切に動作させるには、 PATH
をいじる必要がある場合があります。 )
git clone https://github.com/b-ryan/powerline-shell
cd powerline-shell
python setup.py install
以下を.bashrc
ファイルに追加します。
function _update_ps1() {
PS1=$(powerline-shell $?)
}
if [[ $TERM != linux && ! $PROMPT_COMMAND =~ _update_ps1 ]]; then
PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi
注: macOS では、これを.bash_profile
、 .bash_login
、または.profile
のいずれかに追加する必要があります。 macOS は前述の順序でファイルを実行し、最初に見つかったファイルで実行を停止します。優先順位の詳細については、 man bash
の呼び出し」セクションを参照してください。
以下を.zshrc
に追加します。
function powerline_precmd() {
PS1="$(powerline-shell --shell zsh $?)"
}
function install_powerline_precmd() {
for s in "${precmd_functions[@]}"; do
if [ "$s" = "powerline_precmd" ]; then
return
fi
done
precmd_functions+=(powerline_precmd)
}
if [ "$TERM" != "linux" -a -x "$(command -v powerline-shell)" ]; then
install_powerline_precmd
fi
~/.config/fish/config.fish でfish_prompt
再定義します。
function fish_prompt
powerline-shell --shell bare $status
end
以下を.tcshrc
に追加します。
alias precmd 'set prompt="`powerline-shell --shell tcsh $?`"'
Powerline-shell は、構成ファイルを使用してカスタマイズできます。このファイルは~/.config/powerline-shell/config.json
にあることが想定されています。以下を使用して、この場所にデフォルトの構成を生成できます。
mkdir -p ~/.config/powerline-shell &&
powerline-shell --generate-config > ~/.config/powerline-shell/config.json
(例として、私の設定ファイルはここにあります: ここ)
構成ファイルを生成したら、シェルの構成要素である「セグメント」の追加または削除を開始できます。利用可能なセグメントのリストはここでご覧いただけます。
カスタム セグメントを作成することもできます。このように既存のセグメントをコピーすることから始めます。相対インポートを必ず絶対インポートに変更してください。つまり。次のように変更します。
from .. utils import BasicSegment
に
from powerline_shell . utils import BasicSegment
次に、必要に応じてadd_to_powerline
関数を変更します。次に、次のようにセグメント セクションにセグメントへのパスを入力することで、このセグメントを構成で使用できます。
"segments" : [
" ~/path/to/segment.py "
]
2 つの特別なセグメントが利用可能です。 stdout
任意のコマンドを受け入れ、コマンドの出力がプロンプトに表示されます。 env
環境変数を受け取り、変数の値はプロンプトに設定されます。たとえば、構成は次のようになります。
{
"segments": [
"cwd",
"git",
{
"type": "stdout",
"command": ["echo", "hi"],
"fg_color": 22,
"bg_color": 161
},
{
"type": "env",
"var": "DOCKER_MACHINE_NAME"
},
]
}
デフォルトでは、各セグメントを区切るために Unicode 文字 (> 記号に似ています) が使用されます。これは、設定ファイルの「mode」オプションを変更することで変更できます。利用可能なモードは次のとおりです。
patched
- デフォルト。compatible
- 選択したフォントを使用してすでに使用可能な文字の使用を試みます。flat
- セグメント間にセパレータが使用されず、各セグメントが長方形の外観になります (スペースも節約されます)。powerline_shell/themes
ディレクトリには、プロンプトのテーマが保存されます。テーマは基本的にセグメントで使用される色の値です。 default.py
スタンドアロンで使用できるデフォルトのテーマを定義しており、セグメントの色が不足している場合、他のすべてのテーマはそれにフォールバックします。
カスタム テーマを作成する場合は、基本テーマと同様に、既存のテーマの 1 つをコピーすることから始めます。 ~/.config/powerline-shell/config.json
更新し、 "theme"
ファイルのパスに設定します。たとえば、構成には次のようなものがあるとします。
"theme": "~/mythemes/my-great-theme.py"
その後、好みに合わせてカラーコードを変更できます。テーマの色は、Xterm-256 カラー コードを使用して指定されます。
色の組み合わせをテストするためのスクリプトはcolortest.py
で提供されています。お使いの端末によっては表示される色が異なる場合がございますのでご了承ください。テーマを設計するときは、特にデフォルト設定で複数の端末でテーマをテストしてください。
一部のセグメントは追加の構成をサポートしています。セグメントのオプションは、セグメント自体の名前の下にネストされます。たとえば、 cwd
セグメントのすべてのオプションは、次のように~/.config/powerline-shell/config.json
で設定されます。
{
"segments": [...],
"cwd": {
options go here
}
"theme": "theme-name",
"vcs": {
options go here
}
}
cwd
セグメントのオプションは次のとおりです。
mode
: plain
の場合、CWD を表示するために単純なテキストが使用されます。 dironly
の場合、現在のディレクトリのみが表示されます。それ以外の場合は、cwd を個々のディレクトリに展開します。max_depth
: パスに表示するディレクトリの最大数。max_dir_size
: パス内の各ディレクトリに表示される最大文字数。full_cwd
: true の場合、 max_dir_size
の使用時に最後のディレクトリは短縮されません。 hostname
セグメントには、次の 1 つのオプションがあります。
colorize
: true の場合、ホスト名はそれ自体のハッシュに基づいて色付けされます。 vcs
セグメントには、次の 1 つのオプションがあります。
show_symbol
: true
の場合、バージョン管理システム セグメントは、現在のディレクトリで使用されている特定のバージョン管理システムを表すシンボルで始まります。 battery
セグメントのオプションは次のとおりです。
always_show_percentage
: true の場合、AC で完全に充電されたときのパーセンテージを表示します。low_threshold
: バッテリー残量低下インジケーターの色のしきい値パーセンテージ。 time
セグメントのオプションは次のとおりです。
format
: strftime 関数で使用されるフォーマット文字列 (例: %H:%M
。powerline_shell/segments
ディレクトリには、単一のファイルpowerline_shell_base.py
にそのまま挿入される Python スクリプトが含まれています。各セグメント スクリプトは、プロンプトに 1 つ以上のセグメントを挿入する関数を定義します。新しいセグメントを追加する場合は、セグメント ディレクトリに新しいファイルを作成するだけです。
スクリプトに、他のスクリプトと競合する可能性のある新しいグローバルが導入されていないことを確認してください。スクリプトはサイレントに失敗し、どのようなシナリオでも迅速に実行される必要があります。
新しいセグメントを作成するたびに、 themes/default.py
に新しいデフォルトの色を必ず導入してください。まずこのテーマでセグメントをテストしてください。
可能な限り、セグメントにテストを追加する必要があります。単体テストと統合テストの両方を歓迎します。 test.sh
スクリプトを実行してテストを実行します。 docker
使用して依存関係と環境を管理します。あるいは、 requirements-dev.txt
に要件をインストールした後で、 nosetests
コマンドを実行することもできます。
FAQを参照してください。引き続き問題が発生する場合は、問題を開いてください。