Edited at

Macでxonshに乗り換える

色々いじってたらbash_profileの設定を吹き飛ばしてしまい、まあいい機会ということでxonshに乗り換えた。

まだ全然使いこなせてないけど、最低限bashからxonshに移行するのに必要なことをまとめる。


xonshを入れる

Homebrewpipで入れましょう。

brew install xonsh

もしくは

pip install xonsh


デフォルトに設定する

次に、デフォルトのログインシェルをxonshに変えましょう。

xonshがどこにあるか確認。

which xonsh

ターミナルの環境設定のところから、シェルを以下のように設定します。

これでターミナルを開くと毎回xonshでログインしてくれます。


xonshのパスをいじったり

さて、次は.xonshrcの設定に行きましょう。

デフォルトだと.xonshrcがないので、まずはファイルを作成します。

touch ~/.xonshrc

これで設定ファイルが作成されました。

次に、パスを通しましょう。

おそらくMacユーザーならHomebrewを使ってるはずで、Homebrewが使えるようにパスを通しておきます。

ついでに色々ここでエイリアスとか貼ったりします。

以下に示すのはぼくの設定です。


~/.xonshrc

import os

from collections import Counter
from prompt_toolkit.keys import Keys

$PATH.append("/usr/local/bin/")

# カラーテーマ
$XONSH_COLOR_STYLE = "native"
# tabではなく空白4
$INDENT = " "
# 補完時に大小区別しない
$CASE_SENSITIVE_COMPLETIONS = False
# 括弧を補完
$XONSH_AUTOPAIR = True
# ディレクトリ名を入力すればcdできる
$AUTO_CD = True
# エラー全て吐くように
$XONSH_SHOW_TRACEBACK = True
# プロンプトの設定タイムアウトのメッセージ抑制
$SUPPRESS_BRANCH_TIMEOUT_MESSAGE = True

$PL_PROMPT = "short_cwd>branch"
$PL_RPROMPT = "!"
$PL_TOOLBAR = "who>time"
# lsコマンドの結果の見た目
$LS_COLORS="di=34:ln=35:so=32:pi=33:ex=31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:ow=43;30"

# プロンプト
$PROMPT = ' {BOLD_GREEN}[{user}] {cwd}{branch_color}{curr_branch: {}}{NO_COLOR} {BOLD_BLUE}{prompt_end}{NO_COLOR} '

# エイリアス
aliases["lt"] = "ls -ltr"
aliases["l"] = "ls -ltr"
aliases["la"] = "ls -la"
aliases["ll"] = "ls -l"
aliases["es"] = "exec $SHELL"
aliases["cp"] = "cp -i"
aliases["rm"] = "rm -i"
aliases["sbcl"]= "rlwrap sbcl"


基本的にばんくしさん(@vaaaaanquish)のやつを参照しました。お世話になります。

最後にsbclのエイリアスを貼ってるのはぼくがLisperだからです。

Lisperじゃないよって人は無視してください。

プロンプトで最初に「〇〇のMacbook air」って書いてあるのが嫌だったので$PROMPTをいじって消しました。

色についてはそのあとの{BOLD_GREEN}とかでいじれるっぽいですね。

とにかく、ここではHomebrewが使えるようにパスを通せばいいので$PATH.append("/usr/local/bin/")さえ書いてあればいいです。

最後にこの設定を有効にしておきましょう。

source ~/.xonshrc


多分これでオッケー

おそらく、おそらくですが、だいたいこれでやりたいことはだいたいできると思います。

まあ不具合が発生した場合はその度にアドホックに解決していけばいいでしょう....


終わり

これでbashからxonshに乗り換えました。

ぼく自身Pythonを一番よく使うので、設定ファイルの記述とかも色々馴染みがあっていい感じですね。

もっと早くに乗り換えればよかった....


参考文献

ばんくしさんのブログ

xonshの公式サイト