Python 製のシェル xonsh を使ってみる
はじめに
これは Xonsh Advent Calendar 2017 24 日目の記事です。
終盤なのに使ってみた記事でごめんなさい。
インストール
みんな書いてるので今更感ですが、Python 3.4以上の環境で pip install xonsh
です。
設定にまつわること
xonshrc を書くときに必要なこと
パス
これシェルでは超大事なのに意外とみんなすっ飛ばしてて、最初どうやんのかんーって思ってました。
xonsh ではPATHの一覧は $PATH
で見られます。
username@hostname ~ $ $PATH EnvPath( ['/Users/yuya/.pyenv/versions/anaconda3-5.0.0/bin', '/usr/local/Cellar/pyenv/1.1.5/libexec', '/Users/yuya/.pyenv/plugins/python-build/bin', '/Users/yuya/.pyenv/versions/anaconda3-5.0.0/bin', '/usr/local/Cellar/pyenv/1.1.5/libexec', '/Users/yuya/.pyenv/plugins/python-build/bin', '/Users/yuya/.pyenv/versions/anaconda3-5.0.0/bin', '/usr/local/Cellar/pyenv/1.1.5/libexec', '/Users/yuya/.pyenv/plugins/python-build/bin', '/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin', '/Users/yuya/.fzf/bin', '/usr/local/bin', '/Users/yuya/.fzf/bin', '/usr/local/bin', '/Users/yuya/.fzf/bin'] )
xonsh は Python なので環境変数はリストとして格納されてます。ということは append でパスの追加ができます。 .xonshrc
に以下を記入
$PATH.append("/usr/local/bin")
Powerline について
僕はシェルは圧倒的powerline派なので、これは外せません
# 導入 pip install xontrib-powerline xontrib load powerline
ただし、オフィシャルなREADME には右プロンプトをいじるのに$PL_PROMPT
をいじれってあるんですけど、これをいじって実際に変わるのは左(メイン)プロンプトで、右をいじりたければ $PL_RPROMPT
を触る必要があります。ソースコードの方にはしっかり RPROMPT ってありますしね...
マイ .xonshrc
Advent Calendar のいろいろな記事を参考にさせていただきました。
- Pythonistaに贈るXonshのススメ - Stimulator
- xonshにおけるxontribの紹介 - Stimulator
- XonshのException発生時のtracebackを見やすくする - Stimulator
- 俺はzshからxonshに乗り換えるぞ!ジョジョーーッ! - Qiita
あたりを パク... 参考にさせて頂きました。
見た目はこんな感じ。iterm2 の spacegray というのを使っています。
変態的使い方
RStudio のターミナルで xonsh を設定すると、Rを書きながらちょっとPython やりたいたいみたいなときに便利です?
ところで
Python でシェルを作れるってことは、R でも作れそうですよね!!
Rおじさんとしてはいつかやってみたい...