#linux #vim
#linux #vim
Вопрос:
Я использую Red Hat Enterprise Linux 5, и я хочу настроить редактор vim для редактирования файла crontab.
Если я запускаю echo $EDITOR
, я получаю vim. Но когда я запускаю crontab -e
, я получаю другой редактор.
Ответ №1:
Очень вероятно, что ваша VISUAL
переменная окружения установлена на что-то другое. Попробуйте:
export VISUAL=vi
Комментарии:
1. установка переменной
export VISUAL=vim
(setenv VISUAL "vim"
для оболочки tcsh) отлично работает!!2. @lwpro2: Если
VISUAL
значение не задано, используетсяEDITOR
переменная. НоVISUAL
имеет приоритет надEDITOR
.3. Если crontab управляется несколькими лицами с одним пользователем, я рекомендую сделать это в подоболочке, чтобы редактор по умолчанию оставался на месте.
4. Есть идеи, почему файл отличается при открытии в vi вместо nano?
Ответ №2:
Процитирую мужчину:
Параметр -e используется для редактирования текущей crontab с использованием редактора, указанного в переменных среды VISUAL или EDITOR
Чаще всего, если вы запускаете crontab -e
из X, у вас есть VISUAL
set; это то, что используется. Попробуйте это:
VISUAL=vi crontab -e
У меня просто сработало 🙂
Комментарии:
1. Спасибо за объяснение, действительно, я запускаю свой терминал из X.
2. Лучший вариант, если вы используете crontab -e с sudo 🙂
sudo VISUAL=vi crontab -e
Ответ №3:
Если вышеуказанные методы не работают (поскольку они не работали в моей установке 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
не работает2. Вы не должны использовать «sudo» для вашей личной конфигурации. Это может привести к сбоям, заставляющим вас оставаться в режиме повышенной производительности для обычного использования компьютера. Sudo (команда с повышенными правами) предназначена для работы с общесистемными функциями за пределами вашего личного кабинета (~ user area).
Ответ №4:
Вы можете использовать приведенную ниже команду, чтобы открыть его в редакторе VIM.
export VISUAL=vim; crontab -e
Примечание: Пожалуйста, убедитесь, что редактор VIM установлен на вашем сервере.
Ответ №5:
Я думаю, вам может потребоваться использовать полный путь:
export EDITOR=/usr/bin/vim
Комментарии:
1. Проблема в том, что
VISUAL
сначала проверяется. Итак, совершенно разумный совет, подобный вашему, хорошо работает для сеанса SSH и таинственным образом завершается сбоем на рабочем столе.2. Я попытался экспортировать при назначении, как описано, но это не сработало. У меня получилось сначала назначить, а затем экспортировать: EDITOR =/usr/bin/vi; редактор экспорта. Здесь используется SunOS по SSH.
Ответ №6:
export EDITOR=vim
у меня сработало
Ответ №7:
У меня это не сработало. Я запускаю crontab с помощью sudo, поэтому я переключился на root, выполнил вышеуказанные предложения, и crontab открылся бы в vim, но все равно не из моей учетной записи пользователя. Наконец я запустился sudo select-editor
из учетной записи пользователя, и это сделало свое дело.
Комментарии:
1. Если вам нужно запустить sudo для настройки вашей пользовательской среды, это указывает на проблемы, которые вы должны решить. Вы запустили sudo в своем личном пространстве и потеряли разрешение на файлы, которые должны принадлежать вам. Вы можете проверить свое пространство, выполнив:
find ~/ -mount ! -user $(whoami)
. Вы можете исправить проблему, выполнив:sudo chown -R $(whoami):$(whoami) ~/
.2. @L.D.James Вы были правы, спасибо. Как оказалось, это был просто файл .select_editor, который принадлежал root.
Ответ №8:
У меня это сработало :
EDITOR="/usr/bin/vim"
export EDITOR
Добавьте это в ~/.bash_profile или ~/.bashrc, чтобы включить это для текущего пользователя.