Я обычно устанавливаю обе переменные VISUAL
и EDITOR
переменные среды на одно и то же, но в чем разница? Почему бы я установить их по-другому? При разработке приложений, почему я должен смотреть на VISUAL
раньше EDITOR
или наоборот?
источник
Я обычно устанавливаю обе переменные VISUAL
и EDITOR
переменные среды на одно и то же, но в чем разница? Почему бы я установить их по-другому? При разработке приложений, почему я должен смотреть на VISUAL
раньше EDITOR
или наоборот?
EDITOR
Редактор должен быть в состоянии работать без использования «продвинутой» терминал функциональности (например , старого ed
или ex
режим vi
). Он использовался на телетайпных терминалах.
VISUAL
Редактор может быть полным экранным редактором , как vi
или emacs
.
Например, если вы вызываете редактор через bash (используя C-x C-e
), bash попытается сначала VISUAL
редактировать, а затем, если VISUAL
не получится (так как терминал не поддерживает полноэкранный редактор), он попытается EDITOR
.
В настоящее время вы можете оставить EDITOR
неустановленным или установить его vi -e
.
$VISUAL
как фрагмент оболочки, к которому они добавляют имя файла (в кавычках), но некоторые рассматривают его как имя исполняемого файла, в котором они могут искать или не искать$PATH
. Поэтому лучше установитьVISUAL
(иEDITOR
) полный путь к исполняемому файлу (который может быть сценарием-оберткой, если вы хотите, например, параметры).ed
и тому подобное не очень популярны, поэтому я считаю, что это нормально, просто игнорироватьVISUAL
и использоватьEDITOR
.C-x C-e
Bash. Очень удобно.EDITOR
недостаточно, например, дляgit
Ubuntu 12.04. БезVISUAL
установкиgit
игнорируетEDITOR
и просто используетnano
(думаю, скомпилированный по умолчанию).ed
. Когда появились редакторы с графическим интерфейсом - и под GUI я имею в виду GUI CLI (vim, emacs и т. Д. - думаю, ncurses), а не GUI среды рабочего стола - процесс редактирования резко изменился, поэтому возникла необходимость в другой переменной. В этом контексте GUI-редакторы CLI и графического интерфейса рабочего стола более или менее одинаковы, поэтому вы можете установить VISUAL либо; однако РЕДАКТОР предназначен для принципиально другого рабочего процесса. Конечно, это все историческое. Никто не использует Эд в эти дни.Принятый ответ, вероятно, является хорошим, коротким обращением, но это будет попыткой углубиться, когда различие между VISUAL и EDITOR все еще может иметь значение (основываясь на ответе Адама Каца ).
Спецификация POSIX по-прежнему различает редакторы в визуальном режиме и линейные редакторы. Это действительно имело значение в те времена, когда было трудно позиционировать курсор на последовательных соединениях (особенно из-за скорости последовательного соединения). Статья Википедии для VI дает некоторый полезный фон на различии между VI (визуальный редактор режим) и бывший (строка редактора). Если вы углубитесь в исследование, вы найдете раздел «RATIONALE» спецификации «ex» , который дает причину для различия, которое все еще присутствует в спецификации:
Я не нуждался в этом с тех пор, как отказался от своего модема на 300 бод, но я могу себе представить, что люди, которые используют медленные последовательные линии для подключения к встроенным системам (и / или по очень рискованным соединениям), все еще могут оценить возможность использования предпочтительного режима линии редактор отличается от "визуального" редактора, такого как vi. Коды терминалов в стиле VT100 в узких, с потерями, узких соединениях могут быть «раздутыми» в ограниченных приложениях.
Для остальных из нас кажется, что «правильный» ответ «установить их обоих в качестве предпочтительного редактора». Возможно, было бы неплохо использовать это различие для локального / графического редактора (например, Sublime или gvim) против редактора окон терминала (например, vi или emacs), но, скорее всего, существует масса унаследованных причин, почему это, вероятно, не будет работать так, как хотелось бы ,
источник
Некоторые инструменты принимают только EDITOR, например встроенная оболочка fc :
источник
Я пришел к выводу, что
$VISUAL
это графический и$EDITOR
командная строка. Если определено, что - то искание$VISUAL
должно затем попытаться$EDITOR
дальше.( Требуется цитата: я хотел бы получить надлежащую документацию, возможно, справочную страницу или спецификацию POSIX?)
На данный момент у меня есть такие вещи в моем
~/.bashrc
и~/.zshrc
:gvim
без-f
не будет работать с программами, которые ожидают от вас изменений. Это определенно включает в себяsudoeditor
(sudo -e
).Это может сломаться, если у вас есть пробелы на пути к vim. Если это проблема, либо установите ее правильно, либо рассмотрите символические ссылки, такие как
/usr/local/bin/gvim
источник
$VISUAL
зависит от того, есть ли у вас терминал, способный позиционировать курсор, а не от того, доступна ли у вас оконная система.$DISPLAY
, но это полезно знать.Поскольку, похоже, не существует какой-либо среды, в которой vi или аналогичный код потерпел бы неудачу, я настроил VISUAL на то, что требует X DISPLAY, а EDITOR - ex.
В основном, это просто вызывает у меня проблемы, когда какая-то программа не использует VISUAL.
источник