Измените редактор по умолчанию, когда sudo visudo

18

При выполнении sudo visudo редактор по умолчанию nano .
Я хочу изменить его на vi или vim .

Я уже сделал vim редактора по умолчанию и использовал его как замену gedit для открытия файлов php, .txt, .c и .h, поместив файл vim.desktop в ~/.local/share/applications/ и по правильно отредактировав либо ~/.local/share/applications/mimeapps.list , либо /etc/gnome/defaults.list . Однако, очевидно, это не относится к nano .

Любая подсказка?

    
задан Cbhihe 01.10.2014 в 20:46
источник

3 ответа

16

Проблема не в том, что это не относится к nano , это не относится к оболочке:

Просто установите переменную среды VISUAL :

export VISUAL=vim

Добавьте это слишком ~ / .bashrc, чтобы сделать его постоянным.

Как вы, кажется, используете vim в целом, установите оба VISUAL и EDITOR :

export VISUAL="vim"
export EDITOR="$VISUAL"

или более POSIX-правильно

VISUAL="vim" ; export VISUAL
EDITOR="$VISUAL" ; export EDITOR

Я предполагаю, что nano было значением одной или обеих переменных.

Чтобы использовать редактор в visudo на самом деле, нам нужно обработать, что sudo не сохраняет переменные среды обычно. Опция -E изменяет это.

sudo -E visudo

Без -E здесь вы снова получите значение nano


Две переменные, которые использовались задолго до того, как файлы с именем *.desktop или mime* даже существовали.
(И впечатляющая вещь: они фактически использовались как общий стандарт.)
В Ubuntu по умолчанию для системы установлено значение sudo update-alternatives --config editor . Он отображает меню для изменения текущей ассоциации.


См. раздел ENVIRONMENT в man visudo :

  VISUAL           Invoked by visudo as the editor to use

  EDITOR           Used by visudo if VISUAL is not set
    
ответ дан Volker Siegel 01.10.2014 в 21:42
источник
5

Как описано в этом ответе , добавьте

Defaults editor=/path/to/editor

в файл sudoers .

Примечание: это будет работать, только если редактируемый файл содержит строку Defaults editor=/path/to/editor или содержит файл, который содержит его.

Например: visudo -f /etc/sudoers.d/my_sudoers_extension будет по умолчанию использовать Nano.     

ответ дан Muhamed Huseinbašić 19.01.2017 в 15:29
0

Если вы никогда не планируете использовать nano, вы также можете просто удалить его. Тогда система будет использовать vi / vim по умолчанию.

sudo apt-get purge nano

Я знаю, что это не официальный ответ, но это одна из первых команд для меня после установки Ubuntu.

    
ответ дан Philipp Claßen 11.01.2018 в 16:58