Редактор по умолчанию в Debian

Чаще всего в моей практике администрируемой системой выступают сервера с установленными вариантами Linux. В данном тексте речь идет о дистрибутиве Debian linux. За время моей работы с серверными системами выработались определенные привычки, которые заставляют подстраивать под себя рабочее окружение и софт. Одной из таких привычек можно считать текстовый редактор. Если я в командной строке, мне удобно использовать vi или vim, если-же в MC ( Midnight Commander ), то мне удобно пользоваться его встроенным редактором, вызываемым по F4. Редактор по умолчанию в Debian является программа nano. Не могу сказать что он плохой или не удобный, просто дело привычки и личного комфорта, поэтому первое что я делаю попав в систему, меняю его. Делается это с помощью команды update-alternatives. Как работает данный механизм, можно ппрочитать в man. Если коротко, есть директория /etc/alternatives в которой лежит куча символических ссылок на различные программы, которые по сути являются группами. Возьмем например текстовые редакторы, им соответствует ссылка /etc/alternatives/editor, а эта ссылка, ведет уже на какой-то конкретный редактор ( или на еще одну ссылку, которая уже ведет на редактор ) в каталоге /usr/bin. То есть что мы имеем по умолчанию на примере текстовых редакторов. Символическая ссылка /etc/alternatives/editor, ведет на файл /usr/bin/nano, который в свою очередь является ссылкой на бинарный файл редактора /bin/nano. Немного запутанно, согласен, но по сути вникать в сам механизм альтернатив и не обязательно, нужно просто знать как он работает, мало-ли чего. Программа update-alternatives умеет работать в интервактивном и командном режимах , процесс выбора редактора по умолчанию в интерактивном режиме, выглядит так:
root@backtrack:/usr/bin# update-alternatives --config editor

There are 6 alternatives which provide `editor'.

  Selection    Alternative
-----------------------------------------------
          1    /usr/bin/vim.tiny
          2    /bin/ed
*+        3    /bin/nano # символом *, отмечена текущая программа, символом +, программа с самым высоким приориретом в данной группе
          4    /usr/bin/emacs21
          5    /usr/bin/nedit
          6    /usr/bin/mcedit-debian

Press enter to keep the default[*], or type selection number: 6 # выбираем номер 6
Using '/usr/bin/mcedit-debian' to provide 'editor'.
# Проверим
root@backtrack:/usr/bin# update-alternatives --config editor

There are 6 alternatives which provide `editor'.

  Selection    Alternative
-----------------------------------------------
          1    /usr/bin/vim.tiny
          2    /bin/ed
 +        3    /bin/nano
          4    /usr/bin/emacs21
          5    /usr/bin/nedit
*         6    /usr/bin/mcedit-debian # теперь этот редактор является текущим
Что-бы выставить значение по умолчанию, достаточно выполнить команду:
root@backtrack:/usr/bin# update-alternatives --auto editor
и редактором по умолчанию снова станет программа, помеченная символом +. Если запустить update-alternatives с ключом --all, запустится интерактивная настройка всех групп в сисеме альтернатив, просто нажимая Enter, можете просмотреть все имеющиеся в наличии группы команд. В качестве примера был взят именно текстовый редактор, поскольку из системы альтернатив, я настраиваю только его, при этом постоянно забываю как это делать). Подобный механизм используется и в нескольких других операционных системах семейства Unix, например Gentoo и Ubuntu.

Комментарии

Для gentoo да, похожий механизм только команды другие

#eselect editor list
#eselect editor set 1

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
Регистр имеет значение
 ooooooooo.                  .oooo.     .ooooo.    ooooo     ooo  ooooooooo.   
`888 `Y88. .dP""Y88b 888' `Y88. `888' `8' `888 `Y88.
888 .d88' .oooooooo ]8P' 888 888 888 8 888 .d88'
888ooo88P' 888' `88b .d8P' `Vbood888 888 8 888ooo88P'
888`88b. 888 888 .dP' 888' 888 8 888`88b.
888 `88b. `88bod8P' .oP .o .88P' `88. .8' 888 `88b.
o888o o888o `8oooooo. 8888888888 .oP' `YbodP' o888o o888o
d" YD
"Y88888P'
Введите код, изображенный в стиле ASCII-арт.