Як вказати редактор, щоб відкрити файл crontab? "Експортувати EDITOR = vi" не працює


103

Я використовую Red Hat Enterprise Linux 5 і хочу встановити редактор vim для редагування файлу crontab.

Якщо я біжу echo $EDITOR, я отримую vim. Але коли я бігаю crontab -e, я отримую іншого редактора.

Відповіді:


170

Дуже ймовірно, що ваша VISUALзмінна середовище встановлена ​​на щось інше. Спробуйте:

export VISUAL=vi

6
налаштування змінної export VISUAL=vim( setenv VISUAL "vim"для оболонки tcsh) вона працює ВЕЛИЧЕ !!
antonjs

9
@ lwpro2: Якщо VISUALне встановлено, використовується EDITORзмінна. Але VISUALмає перевагу над EDITOR.
bmk

Якщо crontab управляє декількома особами з одним користувачем, я рекомендую зробити це в підрозділі, щоб редактор за замовчуванням залишався на місці.
Томас Бьом

Будь-які ідеї, чому файл відрізняється, коли відкривається in vi замість nano?
дардуб

76

Щоб цитувати чоловіка:

Параметр -e використовується для редагування поточного crontab за допомогою редактора, визначеного змінними середовища VISUAL або EDITOR

Найчастіше, якщо ви біжите crontab -eвід X, ви VISUALвстановили; ось що використовується. Спробуйте це:

VISUAL=vi crontab -e

Це просто працювало для мене :)


Дякую за пояснення. Дійсно, я керую своїм терміналом з X.
antonjs

1
Найкращий варіант, якщо у вас працює crontab -e з sudo :)sudo VISUAL=vi crontab -e
MediaVince

42

Якщо перераховані вище методи не працюють (так як вони не працювали на моїй установці Ubuntu 13.04), спробуйте:

Існує ряд альтернативних способів:

1) Запустіть редактор вибору

select-editor

2) Редагуйте файл вручну: ~/.selected_editorвказавши бажаний редактор. За допомогою цієї опції ви можете вказати параметри редактора.

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/emacs -nw"

3) Ви можете вказати на льоту в командному рядку за допомогою:

env VISUAL="emacs -nw" crontab -e

1
Я помилково встановив редактор за замовчуванням, nanoколи відкривав crontab вперше. Тоді мені довелося скористатися, sudo select-editorщоб змусити його працювати. Порада, якщо тільки select-editorне працює
244н

2
Не слід використовувати "sudo" для особистої конфігурації. Це може зламати ситуацію, що змусить вас залишатися на підвищеній роботі для звичайного використання комп'ютера. Судо (підвищена команда) призначена для роботи із загальносистемними функціями за межами вашої особистої зони (~ зона користувача).
Л. Д. Джеймс

5

Я думаю, вам може знадобитися використовувати повний шлях:

export EDITOR=/usr/bin/vim

3
Пастка - це те, що VISUALперевіряється спочатку. Тож ідеально обгрунтована порада, як ваша, добре працює для сеансу SSH і загадково не працює на робочому столі.
9000

Я намагався експортувати, призначаючи, як описано, але це не вийшло. Призначаючи спочатку, а потім експортуючи, він працював на мене, як-от так: EDITOR = / usr / bin / vi; експорт РЕДАКТОР. Тут використовується SunOS під SSH.
Алан

5

Ви можете скористатися командою нижче, щоб відкрити її в редакторі VIM.

export VISUAL=vim; crontab -e

Примітка. Переконайтесь, що на вашому сервері встановлено редактор VIM.



2

Це не працювало для мене. Я запускаю crontab з sudo, тому я перейшов на root, зробив наведені вище пропозиції, і crontab відкриється у vim, але це все одно не буде з мого облікового запису користувача. Нарешті я біг sudo select-editorз облікового запису користувача, і це зробило трюк.


1
Якщо вам доведеться запустити sudo, щоб налаштувати своє середовище користувача, що означає проблеми, з якими слід вирішити. Ви запустили sudo у своєму особистому просторі та втратили дозвіл на файли, які повинні бути вами. Ви можете перевірити свій простір, запустивши: find ~/ -mount ! -user $(whoami). Ви можете виправити цю проблему, запустивши: sudo chown -R $(whoami):$(whoami) ~/.
LD James

@LDJames Ви мали рацію, дякую. Як виявляється, коренею належав саме файл .select_editor.
Felwit

2

Це працювало для мене:

EDITOR="/usr/bin/vim"
export EDITOR

Додайте це до ~ / .bash_profile або ~ / .bashrc, щоб увімкнути це для поточного користувача.

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