Измените текстовый редактор по умолчанию для crontab на vim

100

Я использую Ubuntu 9.10 и текстовый редактор по умолчанию - nano, который я ненавижу. (не все?)

Обычно это не проблема, так как я просто vi или gedit all, но crontab -eоткрываюсь с помощью nano. Я попытался изменить его на vim, используя sudo update-alternatives --config editorи выбрав опцию 3 ("/usr/bin/vim.basic"). Это изменило его как для sudo, так и для non-sudo. Но crontab -eвсе равно открывается нано. Есть идеи? Максимум

Макс Уильямс
источник

Ответы:

124

Команда crontab -eпроверит переменные окружения $EDITORи $VISUALпереопределит текстовый редактор по умолчанию, так что ...

export VISUAL=vim

или же

export EDITOR=vim

должен сделать свое дело.

NJD
источник
6
Помните, что если вы редактируете crontab другого пользователя, используйте sudo -E crontab -ewhere , где sudo -Eуказано, используйте env vars.
MarkHu
89

В Ubuntu попробуйте запустить:, select-editorкоторая в интерактивном режиме создает ~/.selected_editor:

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/vim.basic"
smintz
источник
я попробовал это (под sudo и моим пользователем) и любой вариант, который я изменил, когда я позвонил снова, он все еще был на нано. В любом случае это было исправлено с помощью EDITOR env var, но я все равно лучше упомянул об этом. Приветствия
Макс Уильямс
4
Приведенные выше ответы не сработали ... это сработало.
mlissner
2
Да, это меняет ~ / .sensible_editor, используемый / usr / bin / sensible-editor. Похоже, что в отсутствие переменных окружения, определяющих редактор, crontab запускает sensible-editor, а не редактор, так как первый допускает настройку для каждого пользователя.
угорь ghEEz
2
@MaxWilliams, запуск select-editor не будет показывать ранее сделанный выбор, который хранится в ~ / .sensible_editor.
угорь ghEEz
5
@eelghEEz - Ты имеешь в виду ~/.selected_editor? Это то, что в моей системе и что я видел в другом месте.
Уилсон Ф
12

Если вы nanoтак ненавидите, вы можете просто удалить его:

sudo apt-get remove nano

crontabЗатем следует просто по умолчанию на следующий EDITOR(для меня это было vim.basic).

complistic
источник
Мы запускаем наши задания cron с учетной записью суперпользователя, но входим в учетную запись dev. Так что из учетной записи Dev мне нужно сделать sudo crontab -e. Я установил export EDITOR=vimучетную запись суперпользователя и учетной записи разработчика в .bashrc, но sudo crontab -eвсе еще открывался в nano. После удаления nano открывается vim. Спасибо!
Арун
1
Это единственное решение, которое сработало для меня. До этого пытался 4-5 вещей :)
Чарли Винн
Это, безусловно, лучшее решение, если, как подразумевает ОП, вам никогда не нужен нано. Не уверен, почему это не приходило мне в голову раньше - возможно, я не знал, что crontab просто по умолчанию выберет следующий доступный редактор! Великолепно
Люк
11

От man crontab:

Опция -e используется для редактирования текущего crontab с помощью редактора
определяется переменными окружения VISUAL или EDITOR. После Вас
выйдите из редактора, модифицированный crontab будет установлен автоматически
чески. Если ни одна из переменных среды не определена, то
используется редактор по умолчанию / usr / bin / editor.

Добавьте к вашему ~/.bashrc:

export EDITOR=vim
Кир
источник
4

Лучший выбор - установить альтернативу редактору (не одному пользователю):

sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100
Жиль Квено
источник
3
Почему лучше изменить настройку для других пользователей, которые не просили об изменении?
ceving
3
export EDITOR=vi && crontab -e 

работает на Debian Squeeze

Торстен Зенк
источник
2
Небольшое объяснение будет иметь большое значение.
ChrisF
3
это устанавливает переменную окружения EDITOR и впоследствии редактирует файл crontab, также EDITOR=vim crontab -eбудет работать, но только один раз.
0x4a6f4672
3

К сожалению, я не могу комментировать или голосовать.

На Ubuntu файл конфигурации называется ~/.selected_editor

С помощью следующей команды вы можете снова выбрать редактор по умолчанию :

$ select-editor

Удаление файла в вашем домашнем каталоге также работает.

$ rm ~/.selected_editor

Только установка переменных $VISUALили $EDITORбудет работать, но будет постоянной, только если вы запишите это в скрипт, который выполняется в вашей среде.

Добавить в свой файл rc

$ echo "export VISUAL=/usr/bin/vi" >> ~/.bashrc

Но я бы не рекомендовал использовать последнее решение.

Андре
источник
Если вы не рекомендуете, почему вы это предоставили?
Ramhound
Просто для завершения и потому, что другие люди могут предпочесть этот путь.
Андре
0

Лучше всего удалить ~/.sensible_editorфайл, а затем запустить crontab -eпредложит вам выбрать предпочтительный редактор.
С этого момента ваши предпочтения будут запомнены в ~/.sensible_editorфайле.

Джиджу Томас Мэтью
источник
Не уверен, почему за это проголосовали, это именно то, что мне нужно, и работал отлично.
ограбить
Ubuntu, похоже, не знает emacsclient.
празднование
-1

для Debian используйте:

sudo update-alternatives --config editor command

а также

 ----------------------------------------------------------
06  * 0          /bin/nano            40       
07  1            /bin/nano            40       
08  2            /usr/bin/vim.basic   30        
09  3            /usr/bin/vim.tiny    10        

выберите «2» и нажмите ввод. Понял!

reasonpun
источник
Добро пожаловать в Супер пользователя! Пожалуйста, внимательно прочитайте вопрос. Ваш ответ не отвечает на оригинальный вопрос. ОП уже попробовал это (это в вопросе), и это не решило его проблему.
ДэвидПостилл
-1

Проще всего было бы избавиться от продукта, который вам не нужен в полном объеме. Все остальные изменения конфигурации будут автоматически.

apt-get install vim -y && apt-get remove nano -y

Озирис
источник
-1

На старых машинах, таких как некоторые Debian, это также работает и является наиболее переносимым решением.

mv /usr/bin/editor /usr/bin/.editor
ln -s $(which vim) /usr/bin/editor
hlupaco
источник
Нет, не связывайтесь ни с чем /usr/binвручную; Эти местоположения управляются dpkgи не должны управляться напрямую.
tripleee