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.

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.


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).


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

+1 für SSH_CONNECTION Tipp
Anishsane
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.