Um sicherzustellen, dass das Verhalten nicht durch meine persönliche Konfiguration beeinflusst wird, möchte ich Vim so starten, dass alle von mir installierten Konfigurationsdateien ignoriert werden, als wäre Vim gerade erst zum ersten Mal neu installiert worden und der Benutzer hätte es ausgeführt sofort.
Dies wird in den häufig gestellten Fragen ( FAQ) angesprochen, die darauf hindeuten, dass Vim mit dem folgenden Befehl gestartet werden soll:
vim -u NONE -U NONE -N -i NONE
Dies wird zwar weitestgehend erreicht, die runtimepath
Option enthält jedoch weiterhin ~/.vim
und insbesondere ~/.vim/after
(wenn ich z. B. die Dateityperkennung anschließend einschalte und den Dateityp ändere, wird Code in ~/.vim/after/syntax/the_relevant_filetype.vim
ausgeführt).
Ich kann dieses spezielle Problem umgehen, indem ich beim Start die folgenden Befehle aufrufe *:
:set runtimepath-=~/.vim
:set runtimepath-=~/.vim/after
... aber ich bin nicht sicher, ob:
- Dies ist eine robuste Lösung: Sind dies die einzigen Pfade, die bewirken können, dass die Benutzerkonfiguration wirksam wird? Gibt es noch etwas, woran ich nicht gedacht habe?
- Es gibt einen besseren Weg, um das gewünschte Ergebnis zu erzielen.
* Durch die Verwendung von --cmd
oder -u vimrc
Shell-Argumenten oder einfach durch die manuelle Eingabe.
EDIT : Hier ist ein konkretes Beispiel für ein Problem, das ich zu beheben versuche. (Obwohl ich möchte, dass die Lösung andere mögliche Probleme behebt, auf die ich möglicherweise noch nicht gestoßen bin.):
Erstellen Sie eine Datei ~ / .vim / after / ftplugin / c.vim mit folgendem Inhalt:
noremap i :echom "This is not default behaviour"<CR>
Jetzt haben wir eine vom Benutzer installierte Konfiguration, die wir ignorieren möchten. Lassen Sie uns die in den FAQ vorgeschlagene Lösung testen.
Führen Sie Vim mit folgendem Befehl aus:
vim -u NONE -U NONE -N -i NONE
Geben Sie die Befehle ein:
:filetype plugin on :set ft=c i
Gewünschtes Verhalten : Vim sollte in den Einfügemodus wechseln. Dies ist, was es tun würde, wenn keine Benutzerkonfiguration existiert.
Beobachtetes Verhalten : Vim gibt "Dies ist kein Standardverhalten" aus.
:cd ~
aber auch den Standardspeicherort der viminfo
Datei in $ HOME, was E138 verursachen kann. Ich denke, ein neues, leeres Verzeichnis zu erstellen und dieses für $ HOME zu verwenden, könnte die beste Lösung sein.
-u NONE
?
/tmp
wäre es vielleicht besser, aber dann habe ich / dev / null als schwarzes Loch gewählt. ... oder so ähnlich HOME=$(mktemp -d) vim ...
.
-u NONE
? Kommt darauf an, welches Verhalten du brauchst, nehme ich an.
HOME=/dev/null vim -u NONE
:?