44 Stimmen

Wie man eine benutzerdefinierte .vimrc-Datei referenziert/quelleniert

Gibt es eine Möglichkeit, auf die .vimrc-Datei eines anderen Benutzers zu verweisen (oder "quellen")?

Wenn ich mich als Administrationsbenutzer mit kuu (eine Variante von su, die Kerberos-Sicherheitstoken verwendet) anmelde, möchte ich meine persönliche .vimrc-Datei verwenden.

Ich möchte die bestehende .vimrc-Datei des Administrators nicht überschreiben, da die Administrations-ID von mehreren Benutzern gemeinsam genutzt wird.

2voto

turningtaxis Punkte 21

Ich gehe davon aus, dass Ihr ursprünglicher Besitzer Ihr tty besitzt. Wenn ja, können Sie Ihren ursprünglichen BENUTZER mit folgendem Befehl abrufen:

stat -c'%U' `tty`

Indem Sie Ihre angepasste root .vimrc in /root/.vimrc.$USRNAME platzieren, können Sie eine relativ sichere angepasste vimrc-Datei behalten. Sie können auch andere Dinge tun, aber das überlasse ich Ihrer Vorstellungskraft.

Methode 1 - Legen Sie dies in Ihre /root/.bashrc & rauchen Sie es:

# Ein benutzerdefiniertes vimrc einbinden, wenn es existiert
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

Methode 2 - Legen Sie etwas Ähnliches in Ihre /root/.vimrc (eine bessere Lösung, da Sie möglicherweise ksh verwenden).

Wenn jemand Methode 2 herausfinden kann, würde ich den Beitrag begrüßen. Mir fehlt die Motivation.

1voto

frabjous Punkte 980

Persönlich verlinke ich einfach die .vimrc von Root mit meiner. Von BASH (als Root):

ln -s /home//.vimrc /root/.vimrc

Aber du musst aufpassen, was darin ist.

0voto

ULick Punkte 949

Methode 2 - als Ergänzung zu .vimrc

Verschiedenes ausprobiert
tty funktioniert nicht und system("who am i") auch nicht (sie liefern nichts, wenn sie aus einer vim-Funktion heraus verwendet werden), daher ist dieser Weg viel länger. Jede Abkürzung ist willkommen

"Lokale .vimrc für den Benutzer
" 1. den Benutzer holen, der su verwendet hat
" 2. Wir können seine .vimrc laden.
" aus $HOME (von wo aus wir uns mit sudo angemeldet haben)
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

0voto

boesing Punkte 315

Ich habe vor Jahren ein Plugin erstellt, da ich meine eigene .vimrc auf unseren Servern haben wollte, ohne Benutzer, die sudo verwenden, dazu zu zwingen, als root zu meinem .vimrc zu navigieren.

Mein Plugin funktioniert genauso wie das Plugin, das @ULick bereitgestellt hat.

GIST

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X