カスタマイズxonsh

どうやって...

...現在の色のテーマを変更しますか?

使用可能なスタイルを表示するには、次のように入力します

$ xonfig styles

テーマの色をすばやく覗いてみることができます

$ xonfig colors <theme name>

新しいテーマを設定するには、do

$ $XONSH_COLOR_STYLE='<theme name>'

...ローカルディレクトリからPythonモジュールをインポートしますか?

特定のxonshセッションでインポートできるモジュールは、利用可能なものによって異なりますsys.path現在のディレクトリにあるモジュールをインポートできるようにするには、空の文字列が最初の要素として存在することを確認しますsys.path

$ import sys
$ sys.path.insert(0, '')

... xonsh私のデフォルトシェルとして設定されていますか?

デフォルトのシェルとしてxonshを使いたい場合は、まずxonshを追加する必要があり/etc/shellsます。

最初にxonshがあなたの上にあることを確認してください $PATH

$ which xonsh

次に、rootとして、xonshをシェルリストに追加します

# which xonsh >> /etc/shells

シェルを変更するには、

$ chsh -s $(which xonsh)

変更を有効にするには、ログアウトしてから再度ログインする必要があります。

...現在の行を実行せずにタブ補完結果を選択しますか?

ではprompt_toolkit、シェル、あなたはTABキーと使用を使用して可能タブ補完の結果を循環あなたが欲しい完了を選択するために入力することができます。デフォルトでは、Enterキーは現在の行も実行します。行を自動的に実行したくない場合(長いパス名を作成している場合など)は、

$COMPLETIONS_CONFIRM=True

あなたの xonshrc

...組み込みxonshエイリアスにデフォルトの引数を追加しますか?

dirs標準エイリアス定義メソッドのように、組み込みエイリアスにデフォルト引数を追加したい場合は、失敗します。このケースを処理するには、次のソリューションを使用できますxonshrc

from xonsh.dirstack import dirs

def _verbose_dirs(args, stdin=None):
    return dirs(['-v'] + args, stdin=stdin)

aliases['dirs'] = _verbose_dirs

...ターミナルタブを正しいディレクトリで起動しますか?

Gnome Terminalまたは別のVTE端末を使用していて元のTABのCWDに新しいタブを開始しない場合、これはカスタムVTEインターフェイスのためです。これを修正するには、{vte_new_tab_cwd}プロンプトのどこかに追加してください:

$PROMPT = '{vte_new_tab_cwd}' + $PROMPT

これにより、表示されたプロンプトに影響を与えずに、適切なエスケープシーケンスが端末に発行されます。

... Thunarで "ここでターミナルを開く"アクションを設定しますか?

Thunarを使用して「ここで端末を開く」アクションがうまくいかない場合は、この操作のコマンドを次のように置き換えることができます。

exo-open --working-directory %f --launch TerminalEmulator xonsh --shell-type=best

これを行うには、に行きボタンをクリックして選択ます。Edit > Configure custom actions...Open Terminal HereEdit currently selected action

... xonshでutf-8文字を使用しますか?

xonshにutf-8(すなわち、非ASCII文字)文字を使用できない場合。たとえば、次のような出力が得られた場合

$ echo "ßðđ"
xonsh: For full traceback set: $XONSH_SHOW_TRACEBACK = True
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

問題は次のようなものです。

  • あなたのロケールはutf-8に設定されていません。これを確認するには、環境変数の内容を設定します LC_TYPE
  • あなたのロケールは正しく設定されていますが xonshが起動しです。あなたのLC_TYPE内部をあなたの設定し、.xonshrcxonshがあなたのデフォルト/ログインシェルである場合、これは通常ケースですこの問題を解決するには、オペレーティングシステムのマニュアルを参照して、シェルの起動前に環境変数を正しく設定する方法を知っておく必要があります(~/.pam_environmentたとえば、

... libgcc_s.so.1エラーを修正しますか?

Linuxの特定のフレーバでは、起動時にこのエラーメッセージが定期的に発生することがありますxonsh

libgcc_s.so.1 must be installed for pthread_cancel to work
Aborted (core dumped)

これは上流のPythonの問題によるもので、次のように設定することで修正できます LD_PRELOAD

$ env LD_PRELOAD=libgcc_s.so.1 xonsh

...私のmanページに色を付ける?

環境変数を使用してマニュアルページのカラーサポート追加することができlessます。

# Coloured man page support
# using 'less' env vars (format is '\E[<brightness>;<colour>m')
$LESS_TERMCAP_mb = "\033[01;31m"     # begin blinking
$LESS_TERMCAP_md = "\033[01;31m"     # begin bold
$LESS_TERMCAP_me = "\033[0m"         # end mode
$LESS_TERMCAP_so = "\033[01;44;36m"  # begin standout-mode (bottom of screen)
$LESS_TERMCAP_se = "\033[0m"         # end standout-mode
$LESS_TERMCAP_us = "\033[00;36m"     # begin underline
$LESS_TERMCAP_ue = "\033[0m"         # end underline

Emacsの中でxonshを使う?

オプションA:コミットバッファー

Emacsの対話型シェルとして xonshをComintバッファーで使うことができますこうすることで、Emacsのすべての編集権限をシェルに保持しますが、xonshの完了機能が失われます。

xonshをreadlineサポートとあなたの.xonshrcファイルにインストールしてください

$SHELL_TYPE = 'readline'

また、Emacsではexplicit-shell-file-namexonsh実行可能ファイルに設定します。

オプションB:ANSI用語バッファ

2番目のオプションはEmacs内のAnsi-termバッファでxonshを実行することです。Emacsスタイルの編集をしたい場合は、この方法でモードを切り替える必要がありますが、xonshの印象的な完成を保ちます。

このためには、プロンプトツールキットと共にxonshをインストールすることをお勧めします。その後$SHELL_TYPE、デフォルトのまますることができます。

Emacsは起動時にエクササイズ可能なxonshのパスを入力するよう促しますansi-term