★データ解析備忘録★

ゆる〜い技術メモ

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派なので、これは外せません

github.com

# 導入
pip install xontrib-powerline
xontrib load powerline

ただし、オフィシャルなREADME には右プロンプトをいじるのに$PL_PROMPT をいじれってあるんですけど、これをいじって実際に変わるのは左(メイン)プロンプトで、右をいじりたければ $PL_RPROMPT を触る必要があります。ソースコードの方にはしっかり RPROMPT ってありますしね...

https://github.com/santagada/xontrib-powerline/blob/935fe70b7e8f2bac9ed475b7f7e1eff2ec421de1/xontrib/powerline.xsh#L11-L14

マイ .xonshrc

Advent Calendar のいろいろな記事を参考にさせていただきました。

あたりを パク... 参考にさせて頂きました。

gist.github.com

見た目はこんな感じ。iterm2 の spacegray というのを使っています。 f:id:songcunyouzai:20171223133014p:plain

変態的使い方

RStudio のターミナルで xonsh を設定すると、Rを書きながらちょっとPython やりたいたいみたいなときに便利です? f:id:songcunyouzai:20171223133212p:plain

ところで

Python でシェルを作れるってことは、R でも作れそうですよね!!

Rおじさんとしてはいつかやってみたい...