Можно ли добавить цвет и другие эффекты к приглашению iex
? Есть ли у iex
файл ресурсов (например, _ 3_ для irb
Ruby)? Есть ли API настройки, который позволяет настраивать запросы (например, Ruby _ 5_)?
Как раскрасить подсказку Elixir iex?
Ответы (1)
Да, да и да!
Чтобы настроить подсказку, вам понадобится несколько вещей:
.iex.exs
файл в вашем домашнем каталоге. Создайте этот файл, если он не существует. Он будет выполнен при запускеiex
.- [необязательно] Вызов
Application.put_env
< / a>, чтобы включить ANSI. Это может вам понадобиться, еслиiex
на вашей платформе (например, Windows 10) не обнаруживает поддержку ANSI. - Вызов
IEx.configure
для включения цвета и установки подсказки . - escape-коды ANSI для исправления положения курсора. Без этого использование стрелок вверх / вниз для прокрутки истории команд перемещает курсор все дальше вправо.
IO.ANSI
в настоящее время отображает не все коды перемещения курсора, а необработанные коды будут работать для терминалов, которые их поддерживают. IO.ANSI
функции форматирования.- Текст подсказки.
IO.ANSI.reset
, чтобы отключить оставшееся форматирование.- Преобразуйте в строку с
IO.chardata_to_string
.
Вот что у меня работает с iex
1.3.0 в Терминале и iTerm2 3.0.3 в OS X 10.11 .5, а в консоли - GitBash и ConEmu в Windows 10:
# ~/.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.]
person
jwfearn
schedule
19.06.2016
IEx.configure colors: [eval_result: [: green,: bright]] # Интересно, почему зеленый цвет отображается как желтый?
- person sheriffderek; 26.08.2016
@sheriffderek Названия цветов ANSI сопоставляются с индексами в таблице цветов, определенной в другом месте (например, в терминальной программе). Многие терминальные программы поддерживают цветовые схемы (например, github.com/lysyi3m/osx-terminal-themes)
- person jwfearn; 27.08.2016
в Windows 10 расположение файла конфигурации
%USERPROFILE%\.iex.exs
- person Dmitry Ledentsov; 28.02.2017
Что заменяет% USERPROFILE% ??
- person whoadityanawandar; 27.08.2017
на всякий случай используется несколько оконных терминалов, например ConEmu / Cmder и простой cmd / VSCode, которые не могут выполнять ANSI, конфигурация может быть условной, например
if System.get_env("ConEmuANSI") == "ON" do ... end
- person Dmitry Ledentsov; 13.12.2019