Как указать редактор для открытия файла crontab? «Экспорт EDITOR = vi» не работает

103

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

Если я бегу echo $EDITOR, то получаю vim. Но когда я бегу crontab -e, у меня другой редактор.

Antonjs
источник

Ответы:

170

Очень вероятно, что в вашей VISUALпеременной среды установлено другое значение. Пытаться:

export VISUAL=vi
БМК
источник
6
установка переменной export VISUAL=vim( setenv VISUAL "vim"для оболочки tcsh) работает ОТЛИЧНО !!
antonjs
9
@ lwpro2: Если VISUALне задано, используется EDITORпеременная. Но VISUALимеет приоритет над EDITOR.
bmk
Если crontab управляется несколькими людьми с одним пользователем, я рекомендую сделать это в подоболочке, чтобы редактор по умолчанию оставался на месте.
Thomas Böhm
Есть идеи, почему файл отличается при открытии в vi вместо nano?
dardub 07
76

Процитирую этого человека:

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

Чаще всего, если вы запускаете crontab -eX, вы VISUALустановили; вот что используется. Попробуй это:

VISUAL=vi crontab -e

У меня это сработало :)

9000
источник
Спасибо за объяснение, действительно, я запускаю свой терминал с X.
antonjs
1
Лучший вариант, если вы используете crontab -e с sudo :)sudo VISUAL=vi crontab -e
MediaVince 08
42

Если вышеперечисленные методы не работают (поскольку они не работали в моей установке Ubuntu 13.04), попробуйте:

Есть несколько альтернативных способов:

1) Запускаем select-editor

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не сработает
244an
2
Вы не должны использовать sudo для вашей личной конфигурации. Это может сломать вещи, вынудив вас продолжать работать на повышенных уровнях при обычном использовании компьютера. Sudo (повышенная команда) предназначена для работы с общесистемными функциями за пределами вашей личной области (~ область пользователя).
LD James
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, владельцем которого был root.
felwithe
2

Это сработало для меня:

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

Добавьте это в ~ / .bash_profile или ~ / .bashrc, чтобы включить это для текущего пользователя.

Ходить
источник