6
iex
プロンプトに色やその他の効果を追加することはできますか? iex
にはリソースファイルがありますか(たとえば、irb
の場合は.irbrc
)? (RubyのIRB.conf
のような)迅速なカスタマイズを可能にするカスタマイズAPIはありますか?エリクシルiexプロンプトを着色する方法は?
iex
プロンプトに色やその他の効果を追加することはできますか? iex
にはリソースファイルがありますか(たとえば、irb
の場合は.irbrc
)? (RubyのIRB.conf
のような)迅速なカスタマイズを可能にするカスタマイズAPIはありますか?エリクシルiexプロンプトを着色する方法は?
はい、はい、はい!あなたのプロンプトをカスタマイズするには
、あなたはいくつかのことをする必要があります:
.iex.exs
。このファイルが存在しない場合は作成します。 iex
が起動すると実行されます。Application.put_env
の呼び出し。お使いのプラットフォーム(Windows 10など)のiex
がANSIサポートを検出しない場合は、この必要があります。IEx.configure
を呼び出し、色を有効にしてプロンプトを設定します。IO.ANSI
は現在、すべてのカーソル移動コードを公開していませんが、生コードはそれらをサポートする端末で機能します。IO.ANSI
フォーマット機能。IO.ANSI.reset
は、残りの書式をオフにします。IO.chardata_to_string
で文字列に変換します。ここでは、ターミナルでiex
1.3.0およびOS X 10.11.5上およびコンソールでiTerm2 3.0.3、GitBash、およびWindows 10上のConEmuと私のためにどのような作品だ:
# ~/.iex.exs
Application.put_env(:elixir, :ansi_enabled, true)
IEx.configure(
colors: [enabled: true],
default_prompt: [
"\e[G", # ANSI CHA, move cursor to column 1
:magenta,
"%prefix", # IEx prompt variable
">", # plain string
:reset
] |> IO.ANSI.format |> IO.chardata_to_string
)
このコードはかなりうまく動作します私のプロンプトは、最初の対話の後にのみ有効になります。iex
が最初に起動すると、その組み込みプロンプトが表示されます。私がリターンを打つと、私のプロンプトが有効になります。誰かがそれを修正する方法を知っている場合は、共有してください。
[更新:Windows上でよりよく動作するように変更。]
IEx.configure色:[eval_result:[:、緑:明るい]]#私は黄色のように、なぜ緑のショーだろうか? – sheriffderek
@sheriffderek ANSIカラー名は、他の場所で定義されたカラーテーブル内のインデックスにマップされます(端末プログラムなど)。多くの端末プログラムがカラースキームをサポートしています(例:https://github.com/lysyi3m/osx-terminal-themes) – jwfearn
Windows 10では、設定ファイルの場所は '%USERPROFILE%\。iex.exs'です。 –