как изменить редактор по умолчанию для sudo vipw с "vi" на "vim" с помощью tcsh во FreeBSD - PullRequest
0 голосов
/ 12 января 2019

Когда я использую команду sudo vipw для редактирования файла паролей, он всегда использует vi в качестве редактора. Мне это не очень нравится, и я хочу изменить его на vim.

Я уже пробовал: Добавьте export EDITOR=/usr/local/bin/vim в /etc/profile.
Но оболочка сказала мне "экспорт: команда не найдена". Я думал, что причина в том, что экспорт - встроенная функция только в bash. И я не хочу менять свою оболочку.

Добавить EDITOR=/usr/lcoal/bin/vim в блок по умолчанию /etc/login.conf
Добавить setenv EDITOR vim в /root/.cshrc, /.cshrc, ~/.cshrc

Все вышеперечисленное не работает вообще. Я часами гуглю, но ничего не могу найти.

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Попробуйте добавить это к root пользователю /root/.chsrc:

setenv EDITOR  vim

или установить его глобально для всех пользователей с помощью оболочки tcsh/csh добавить его в /etc/csh.cshrc

От человек :

A login shell begins by executing commands from the system files /etc/csh.cshrc  
and /etc/csh.login. It then executes commands from files in the  user's  home directory:
first  ~/.tcshrc or, if ~/.tcshrc is not found, ~/.cshrc ...

Non-login  shells read only /etc/csh.cshrc and ~/.tcshrc or ~/.cshrc on startup.

Также убедитесь, что vim установлен, поскольку не по умолчанию, вы можете попробовать:

pkg install vim-console 
0 голосов
/ 13 января 2019

Ваш файл / etc / sudoers не сохраняет переменную среды EDITOR.

У меня лично есть файл /etc/sudoers.d/local, что-то вроде

# We don't need to worry about wheel users breaking in to get root access because they already have it.
Defaults:%wheel env_keep+="HOME EDITOR",!set_home,shell_noargs

Я не уверен, почему это не по умолчанию, поскольку пользователям руля уже предоставлен полный доступ. Но, видимо, преобладает мудрость продолжать их изводить.

Примечание. Если вы используете более старый файл / etc / sudoers, который не поддерживает каталог /etc/sudoers.d, эти строки можно вставить туда ... или вы можете добавить #includedir /etc/sudoers.d в качестве последняя строка вашего файла / etc / sudoers для включения каталога /etc/sudoers.d. Хм, да, # является обязательной частью этой строки, потому что кто-то думал, что для этой директивы важно выглядеть как комментарий.

...