Подтвердить что ты не робот

Как ссылаться/создавать собственный файл .vimrc

Есть ли способ ссылаться (или "исходный" ) на другой файл .vimrc пользователя?

Когда я kuu (вариант su, который использует маркеры безопасности kerberos), ID пользователя admin, я хотел бы использовать мой личный файл .vimrc.

Я не хочу перезаписывать существующий файл .vimrc администратора, потому что идентификатор администратора используется несколькими пользователями.

4b9b3361

Ответ 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