カスタマイズxonsh
¶
- どうやって...
- ...現在の色のテーマを変更しますか?
- ...ローカルディレクトリからPythonモジュールをインポートしますか?
- ...
xonsh
私のデフォルトシェルとして設定されていますか? - ...現在の行を実行せずにタブ補完結果を選択しますか?
- ...組み込み
xonsh
エイリアスにデフォルトの引数を追加しますか? - ...ターミナルタブを正しいディレクトリで起動しますか?
- ... Thunarで "ここでターミナルを開く"アクションを設定しますか?
- ... xonshでutf-8文字を使用しますか?
- ...
libgcc_s.so.1
エラーを修正しますか? - ...私のmanページに色を付ける?
- Emacsの中で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 Here
Edit 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
内部をあなたの設定し、.xonshrc
xonshがあなたのデフォルト/ログインシェルである場合、これは通常ケースです。この問題を解決するには、オペレーティングシステムのマニュアルを参照して、シェルの起動前に環境変数を正しく設定する方法を知っておく必要があります(~/.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-name
xonsh実行可能ファイルに設定します。
オプションB:ANSI用語バッファ
2番目のオプションはEmacs内のAnsi-termバッファでxonshを実行することです。Emacsスタイルの編集をしたい場合は、この方法でモードを切り替える必要がありますが、xonshの印象的な完成を保ちます。
このためには、プロンプトツールキットと共にxonshをインストールすることをお勧めします。その後$SHELL_TYPE
、デフォルトのままにすることができます。
Emacsは起動時にエクササイズ可能なxonshのパスを入力するよう促しますansi-term
。