Temporäre .vimrc

8

Gibt es eine Möglichkeit, eine .vimrcDatei nur für eine einzelne SSH-Sitzung zu lesen ? Das heißt, wenn ich mich anmelde, führe ich einen Vorgang aus, damit vim say verwendet, /tmp/myvimrcbis ich mich abmelde?

Ich möchte die aktuelle .vimrc nicht dauerhaft überschreiben, sondern muss nur ab und zu einen anderen Satz von Einstellungen für die Dauer meiner Anmeldung verwenden.

Robert Gowland
quelle

Antworten:

9

Angenommen, Sie haben diese anderen Einstellungen in /tmp/myvimrc. Wenn meine Lesart man vimkorrekt ist, können Sie vim mit diesen Einstellungen wie folgt starten:

$ vim -u /tmp/myvimrc

Um dies zu einer Option für den Rest der Sitzung zu machen, würde ich eine Funktion erstellen, die dies als Alias ​​für festlegt vim. Daher bashwürde ich so etwas in meine .bashrcDatei aufnehmen:

function vimswitch {
    alias vim='vim -u /tmp/myvimrc'
}

Wenn ich dann meine neuen vim-Einstellungen haben wollte, lief ich einfach:

$ vimswitch

Beachten Sie, dass ich myvimrc nicht speichern würde, /tmpda dies beim Neustart leicht gelöscht werden könnte. Wenn Sie eine andere Shell verwenden, bashsollte dies weiterhin möglich sein, die Syntax kann jedoch geringfügig abweichen.

Steven D.
quelle
1
nett! Das nenne ich die ganzen 9 Meter.
Robert Gowland
9

Sie können die Umgebungsvariable VIMINIT verwenden, um die übliche Verwendung zu überschreiben und .vimrcgleichzeitig andere Teile des Initialisierungsprozesses beizubehalten . VIMINIT sollte auf einen oder mehrere Ex- Style-Befehle ("Doppelpunkt" -Befehle; verwenden Sie pipe ( |), um mehrere Befehle zu trennen) eingestellt werden, nicht nur auf den Pfad zu einer anderen Initialisierungsdatei.

VIMINIT='so /tmp/myvimrc'; export VIMINIT

vim whatever # uses /tmp/myvimrc, not ~/.vimrc

Der Hauptunterschied von der Verwendung -uist , dass VIMINIT noch die anderen Teile ermöglicht Initialisierungsprozesses verwendet werden sollten (zB System vimrc, evim.vim(falls zutreffend), et cetera).

Chris Johnsen
quelle
2
Um die VIMINITVariable während der Protokollierung über ssh automatisch festzulegen, können Sie die Datei verwenden ~/.ssh/environment. Diese Datei kann nur zum Festlegen von Umgebungsvariablen verwendet werden. Der einzige Eintrag, den Sie hinzufügen sollten, lautet : VIMINIT='so /tmp/myvimrc'. Diese Datei wird nur verarbeitet, wenn in der sshd-Konfigurationsoption die Option aktiviert PermitUserEnvironmentist. yesSie sollten daher selbst testen, ob sie für Sie funktioniert, oder Ihren Administrator fragen, ob sie aktiviert ist.
pbm
4

Wenn Sie sich über ssh anmelden, setzt ssh die Variable $SSH_CONNECTION. Sie .bashrckönnen nach dieser Variablen suchen und festlegen, ob der gewünschte Alias ​​festgelegt ist:

if [ -n "$SSH_CONNECTION" ]
then
        alias vim='vim -u /tmp/myvimrc'
fi
pbm
quelle
+1 für SSH_CONNECTION Tipp
Anishsane