Змініть текстовий редактор за замовчуванням для crontab на vim


100

Я використовую ubuntu 9.10, а текстовим редактором за замовчуванням є nano, яке я ненавиджу. (не всі?)

Зазвичай це не проблема, тому що я просто вi або gedit все, але crontab -eвідкривається з нано. Я спробував змінити його на 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

повинен зробити трюк.


6
Пам'ятайте, якщо ви редагуєте crontab інших користувачів, використовуйте sudo -E crontab -eтам, де sudo -Eзазначено, використовуйте ваші env vars.
MarkHu

89

У ubuntu спробуйте запустити:, select-editorякий інтерактивно створює ~/.selected_editor:

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/vim.basic"

Я спробував це (під судо та мого користувача) і будь-який варіант, який я змінив, коли я знову зателефонував, він все ще був на нано. Виправлено це все одно за допомогою EDITOR env var, але я подумав, що краще все-таки згадати його. Ура
Макс Вільямс

4
Вище відповіді не спрацювали ... це так.
mlissner

2
Так, це змінює ~ / .sensible_editor, що використовується / usr / bin / sensible-editor. Схоже, що за відсутності змінних середовища, що вказують редактор, crontab запускає sensible-редактор, а не редактор, як це дозволяє конфігурація користувача.
вугор ghEEz

2
@MaxWilliams, запуск редактора select не відображатиме попередньо зроблений вибір, який зберігається у ~ / .sensible_editor.
вугор ghEEz

5
@eelghEEz - Ви маєте на увазі ~/.selected_editor? Ось що в моїй системі і те, що я бачив в інших місцях.
Wilson F

12

Якщо ви nanoтак ненавидите, можете просто видалити його:

sudo apt-get remove nano

crontabТоді слід просто замовчувати до наступного EDITOR(для мене це було vim.basic).


Ми запускаємо наші завдання на Cron із обліковим записом суперкористувача, але входимо в обліковий запис розробників. Отже, з дев-рахунку мені потрібно зробити sudo crontab -e. Я встановив export EDITOR=vimі .bashrc акаунта суперкористувача, і облікового запису розробника, але sudo crontab -eвсе ще відкривався в нано. Після видалення нано відкриється vim. Дякую!
arun

1
Це єдине рішення, яке працювало на мене. Спробував 4-5 речей до цього :)
Чарлі Вайн

Це, безумовно, найкраще рішення, якщо, як випливає з ОП, нано ніколи не потребує. Не впевнений, чому мені раніше не приходило в голову - напевно, я не розумів, що crontab буде просто за замовчуванням для наступного доступного редактора! Дивовижно
Лука

11

Від man crontab:

Параметр -e використовується для редагування поточного crontab за допомогою редактора
задані змінними середовища VISUAL або EDITOR. Після вас
вийшовши з редактора, модифікований кронтаб буде встановлений автоматизовано
cally. Якщо жодна зі змінних середовища не визначена, то
використовується редактор за замовчуванням / usr / bin / editor.

Додати до свого ~/.bashrc:

export EDITOR=vim

4

Кращий вибір - встановити альтернативу редактора (не лише одного користувача):

sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100

3
Чому краще змінити налаштування для інших користувачів, які не запитували про зміну?
закінчення

3
export EDITOR=vi && crontab -e 

працює на Debian видавленні


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

Але я б не рекомендував використовувати останнє рішення.


Якщо ви не рекомендуєте його, чому ви його надали?
Рамхаунд

Просто для завершення і тому, що інші люди можуть віддавати перевагу саме цьому.
Андре

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" і натисніть клавішу Enter. Зрозумів!


Ласкаво просимо до Супер Користувача! Будь ласка, прочитайте запитання ще раз уважно. Ваша відповідь не відповідає на початкове запитання. ОП вже пробував це (це питання), і це не виправляло його проблеми.
DavidPostill

-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

Ні, не возитися ні з чим /usr/binвручну; ці місця керуються dpkgі не повинні ними маніпулювати безпосередньо.
трійка
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.