wie kann ich meine normale Vim-Initialisierung erhalten, wenn ich sudo vim ausführe?

wie kann ich meine normale Vim-Initialisierung erhalten, wenn ich sudo vim ausführe?

Ich habe einen Alias ​​definiert alias svi='sudo /usr/bin/vim -i /home/jeff/.viminfo -u /home/jeff/.vimrc', aber wenn ich tippe, svi myfilebekomme ich

Beim Verarbeiten von /home/jeff/.vimrc ist ein Fehler aufgetreten:
Zeile 1:
E117: Unbekannte Funktion: pathogen#infect

Anscheinend muss ich vim zwingen, mein .vim-Verzeichnis vor der Ausführung zu scannen. call pathogen#infect() Wie mache ich das und wie kann ich allgemein sicherstellen, dass sudo vimich beim Ausführen dieselbe Umgebung erhalte, die ich beim einfachen Ausführen hätte vim?

Antwort1

wie kann ich meine normale Vim-Initialisierung erhalten, wenn ich sudo vim ausführe?

$ sudo -e filenameIndem Sie anstelle von verwenden $ sudo vim filename.

Dieser Befehl führt Folgendes aus:

  1. fragen Sie nach Ihrem Passwort (falls die Sicherheitsrichtlinie von Sudoers dies erfordert);
  2. Machen Sie eine Kopie von filenamein /tmp/;
  3. öffne eswie dumit dem ersten Editor, der durch Überprüfen der folgenden Punkte in der Reihenfolge gefunden wird: $SUDO_EDITOR, $VISUAL, $EDITOR, und schließlich die Liste der Editoren, die in /etc/sudoers angegeben sind;
  4. kopieren Sie es beim Schreiben zurück in den ursprünglichen Dateinamen.

Weitere Informationen finden Sie unter man sudound .man sudoers

Antwort2

Obwohl ich beabsichtige, die Antwort von @romainl als bevorzugte Lösung zu akzeptieren (nachdem er sie ein wenig angepasst hat), habe ich einen weiteren Versuch unternommen, nach einer Lösung für den aufgetretenen Fehler zu suchen, weil ich es hasse, wenn Computer mir überlegen sind.

Es stellte sich heraus, dass der Fehler damit zusammenhängt, wie die vim- runtimepathOption aufgelöst wird, wenn man als Root ausgeführt wird. Um den Fehler zu beheben, habe ich meinen Alias ​​leicht geändert alias svi='sudo /usr/bin/vim -i /home/jeff/.viminfo -u /home/jeff/.svimrc'und die folgenden drei Zeilen in /home/jeff/.svimrc eingefügt

set runtimepath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/.vim/after,/home/jeff/.vim
source /etc/vimrc
source /home/jeff/.vimrc

Ich bekomme den Fehler nicht mehr und meine benutzerdefinierten Sachen scheinen (bisher) zu funktionieren. Aber wenn ich auf weitere Störungen stoße, werde ich noch :help initializationetwas weiter nachsehen, was sonst noch in meine .svimrc-Datei gehört …

verwandte Informationen