Как ссылаться/создавать собственный файл .vimrc
Есть ли способ ссылаться (или "исходный" ) на другой файл .vimrc пользователя?
Когда я kuu
(вариант su
, который использует маркеры безопасности kerberos), ID пользователя admin, я хотел бы использовать мой личный файл .vimrc
.
Я не хочу перезаписывать существующий файл .vimrc
администратора, потому что идентификатор администратора используется несколькими пользователями.
Ответы
Ответ 1
Вы можете использовать переменную среды MYVIMRC
. Таким образом, вам не придется проходить -u
каждый раз, когда вы запускаете vim. (Вы можете, конечно, сделать псевдоним вместо этого, но это не поможет, например, vipw
)
Имейте в виду, что .vimrc
может выполнять произвольные команды, если вы используете /home/user/.vimrc
, вы можете создать проблему безопасности (например, кому-то удается скомпрометировать вашу учетную запись пользователя, изменить ваш .vimrc и затем root время, когда вы редактируете файл как root). Разумеется, вы можете сохранить где-нибудь известную копию в ~root/
.
Вы могли бы предположить, что даже установили что-то в ~root/.bashrc
, чтобы автоматически установить MYVIMRC
на что-то другое для каждого другого администратора.
Ответ 2
Попробуйте параметр -u
и укажите путь к альтернативному файлу конфигурации.
Например: vim -u /home/jesse/myvimrc
См. http://linuxcommand.org/lc3_man_pages/vim1.html
Ответ 3
В vim:
:source /path/to/your/.vimrc
Ответ 4
Используйте альтернативный файл .vimrc без подключаемых модулей, как упомянуто, и добавьте псевдоним в .bash_profile или что-то в этом роде.
alias svim='vim -u ~/.vimrc_simple'
Действительно я предпочитаю следующее:
alias vvim='vim -u ~/.vimrc_vundle'
Чтобы сохранить vim
в качестве легкой команды, поскольку загрузка плагинов замедляет создание программы.
Ответ 5
Я когда-либо делал это несколько раз, и это, похоже, отлично работает для меня. Определите псевдоним для vim, который выглядит следующим образом:
alias vim="HOME=~yournormaluser vim -c 'let \$HOME = \"$HOME\"'"
То, что это делает, - это трюк vim в использовании среды $HOME/.vim/
, но сбрасывает $HOME
изнутри vim, поэтому такие вещи, как :e ~/something.txt
, будут по-прежнему использовать пользователь admin $HOME
.
Это имеет дополнительное преимущество, что вам вообще не нужно изменять admin ~/.vimrc
.
Ответ 6
Я предполагаю, что ваш первоначальный владелец владеет вашим tty. Если это так, вы можете получить свой первоначальный ПОЛЬЗОВАТЕЛЬ:
stat -c'%U' `tty`
Поместив свой пользовательский корневой .vimrc в /root/.vimrc.$USRNAME, вы можете сохранить безопасный настраиваемый файл vimrc. Вы можете делать и другие вещи, но я оставляю это для вашего воображения.
Способ 1 - поместите это в свой /root/.bashrc и курите его:
# Source a custome vimrc if it exists
mytty=`tty`
initial_user=`stat -c'%U' $mytty`
custom_vimrc="/root/.vimrc.$initial_user"
if [ -f $custom_vimrc ]; then
export VIMINIT="source $custom_vimrc"
fi
Способ 2 - поместите что-то подобное в /root/.vimrc(лучшее решение, так как вы можете использовать ksh).
Если кто-то может найти способ 2, я бы приветствовал этот пост. Мне не хватает мотивации.
Ответ 7
Способ 2 - как дополнение к .vimrc
попробовал разные вещи
tty
не работает, а system("who am i")
- ни один (они появляются пустым при использовании из vim-функции), поэтому этот путь намного длиннее. Любые ярлыки приветствуются
"Local .vimrc for the user
" 1. get the user, which used su
" 2. we can load his .vimrc.<user>
" from $HOME (from where we have sudo'ed in)
let b:term = substitute( system ("ps T | grep ' ps T$' | sed -e 's/^ *//' | cut -d ' ' -f 2 "), "\n", "", "" )
let b:user = substitute( system ("who | grep ".b:term." | cut -d ' ' -f 1 "), "\n", "", "" )
let b:file = $HOME."/.vimrc.".b:user
if filereadable(b:file)
execute 'source '.b:file
endif
Ответ 8
Лично я просто привязываю Root.vimrc к моему. От BASH (от root):
ln -s /home/<me>/.vimrc /root/.vimrc
Но вам нужно быть осторожным в том, что в нем.
Ответ 9
Я создал плагин много лет назад, так как я хотел использовать свой собственный .vimrc
на наших серверах, не заставляя любого пользователя, который использует sudo для перехода от root к моему .vimrc
.
Мой плагин работает точно так же, как плагин, который предоставил @ULick.
GIST