12

iexプロンプトに色やその他の効果を追加することはできますか? ( Ruby のiexような)リソース ファイルはありますか? (Ruby のような) 迅速なカスタマイズを可能にするカスタマイズ API はありますか?.irbrcirbIRB.conf

4

1 に答える 1

27

はい、はい、そしてはい!

プロンプトをカスタマイズするには、次のものが必要です。

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

OS X 10.11.5iexのターミナルとiTerm2 3.0.3で1.3.0 を使用し、Windows 10のコンソール、 GitBash、および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ます。最初の起動時に、組み込みのプロンプトが表示されます。Return キーを押すと、プロンプトが有効になります。誰かがそれを修正する方法を知っている場合は、共有してください。

[更新: Windows でより適切に動作するように変更されました。]

于 2016-06-19T21:24:23.140 に答える