Установите emacs -nw в качестве редактора по умолчанию

13

При редактировании файлов, например sudoers, я хочу использовать emacs вместо nano. Итак, я запустил эту команду

sudo update-alternatives --config editor

И я выбрал Emacs. Единственная проблема в том, что мне нравится emacs без оконного режима (флаг -nw), и я использую псевдонимы emacs, emacs='emacs -nw'так что я не могу использовать оконный режим при обычном использовании, но я не знаю, как заставить мой редактор по умолчанию быть в режиме без окна.

Другими словами, мне нужно получить команду sudo visudoи аналогичные команды, которые открывают редакторы, чтобы открыть файл emacs -nw. Как я могу это сделать? Я на Ubuntu 12.04.

gsingh2011
источник
Это не связано, но если вы намереваетесь использовать `emacs -nw 'в качестве редактора терминала по умолчанию, вы можете рассмотреть emacsclient и запустить emacs как демон. В противном случае, я думаю, что это будет слишком медленно для запуска. С сервером emacs это практически мгновенный запуск, и его нетрудно настроить.
Доджи

Ответы:

8

Создайте скрипт, который запускает emacs с флагом -nw, например / usr / local / bin / emacs-nw.

#!/bin/sh

emacs -nw "$@"

Установите его с помощью альтернативных обновлений --install.

sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/emacs-nw 2

Настройте редактор, чтобы он был вашим новым скриптом.

sudo update-alternatives --set editor /usr/local/bin/emacs-nw
McNisse
источник
2
Для тех , кто не использует ДОПОЛНЕНО альтернативы признаков системы, chmod +x /usr/local/bin/emacs-nwи export EDITOR='emacs-nw'в .bashrcделать трюк.
Smonff
1
Простое обновление переменной оболочки EDITOR для вызова emacs -nwявляется более традиционным и не требует всего этого странного создания файла для такой простой задачи. Почему это лучше?
vaer-k
6

Добавьте следующее в ваш ~/.bashrcфайл (или файл конфигурации для вашей оболочки, если это не Bash).

export EDITOR="emacs -nw"

Это должно установить (и экспортировать) переменную env, устанавливающую ваш редактор по умолчанию как Emacs в неграфическом режиме.

haziz
источник
После настройки, EDITORкак бы вы открыли Emacs в графическом режиме?
Манолет
2
@Manolete вы можете использовать command emacs, это будет запускать Emacs без псевдонимов и тому подобное. Конечно, вы можете также unalias emacsдля сеанса.
Кирреманн
@Manolete На самом деле запуск emacs с emacsпомощью командной строки или нажатие на его значок все равно запустит графическую форму. Команда выше в моем посте просто устанавливает переменную окружения EDITOR в «emacs -nw», она фактически не создает псевдоним. Он просто сообщает оболочке, что вашим предпочтительным редактором является emacs -nw. emacsвсе равно запустит графическую форму.
хазиз
1

У меня есть следующие настройки в моем ~/.bashrc

export EDITOR="emacsclient -t -a=\"\""

Сначала он попытается подключиться к серверу демона emacs, если он уже запущен, в противном случае сначала запустите сервер демона, а затем снова подключитесь.

Точно так же у меня есть следующие настройки в моем ~/.gitconfig

[core]
    editor = emacsclient -t -a=\\\"\\\"
Цзяцай Лю
источник