2016-06-19 3 views

答えて

16

はい、はい、はい!あなたのプロンプトをカスタマイズするには

、あなたはいくつかのことをする必要があります:

  • 自分のホームディレクトリにあるファイル.iex.exs。このファイルが存在しない場合は作成します。 iexが起動すると実行されます。
  • [オプション] ANSIを有効にするためのApplication.put_envの呼び出し。お使いのプラットフォーム(Windows 10など)のiexがANSIサポートを検出しない場合は、この必要があります。
  • IEx.configureを呼び出し、色を有効にしてプロンプトを設定します。
  • ANSI escape codesカーソル位置を修正する。これがなければ、上/下の矢印を使用してコマンドの履歴を順番に調べると、カーソルは一番右に移動します。 IO.ANSIは現在、すべてのカーソル移動コードを公開していませんが、生コードはそれらをサポートする端末で機能します。
  • IO.ANSIフォーマット機能。
  • プロンプトテキスト。
  • IO.ANSI.resetは、残りの書式をオフにします。
  • IO.chardata_to_stringで文字列に変換します。

ここでは、ターミナルでiex 1.3.0およびOS X 10.11.5上およびコンソールでiTerm2 3.0.3GitBash、および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上でよりよく動作するように変更。]

+0

IEx.configure色:[eval_result:[:、緑:明るい]]#私は黄色のように、なぜ緑のショーだろうか? – sheriffderek

+0

@sheriffderek ANSIカラー名は、他の場所で定義されたカラーテーブル内のインデックスにマップされます(端末プログラムなど)。多くの端末プログラムがカラースキームをサポートしています(例:https://github.com/lysyi3m/osx-terminal-themes) – jwfearn

+3

Windows 10では、設定ファイルの場所は '%USERPROFILE%\。iex.exs'です。 –

関連する問題