По умолчанию и в целях безопасности sudo
не сохраняет пользовательскую среду.
Есть несколько способов справиться с этим; для вашего конкретного случая я рекомендую добавить VISUAL=/usr/bin/vim
(и EDITOR=/usr/bin/vim
для программ, которые используют неправильный) в /etc/environment
.
Второй вариант, если у вас есть разрешающая конфигурация sudo (возможно, потому что только у вас или у всех sudoers есть настоящий root-доступ в любом случае), это запустить visudo
и добавить значения по Defaults env_keep="VISUAL EDITOR"
чтобы все sudoers могли указать свои собственные (то есть preserve). эта переменная среды).
Ваш существующий файл sudoers может уже иметь (или включать) один или несколько операторов env_keep, например, это (из примера pastebin):
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Первая из этих строк env_keep
будет перезаписывать любые изменения, которые вы делаете над ним (присваивание), остальные строки расширяют список (+=
). Чтобы все работало так, как вы привыкли, и если у вас нет причин менять набор, я рекомендую добавить строку сразу после них:
Defaults env_keep += "VISUAL EDITOR"
(Существуют и другие варианты использования предпочитаемого вами редактора, но они либо излишне сложны, либо чрезмерно разрешительны и опасны, поэтому вам придется читать man sudoers
, самостоятельно разбираться с ними и понимать, какие могут быть связанные проблемы.)