Verwendung der zweiten vimrc-Benutzerdatei auf vim unter Mac OS X 10.8.5 (Mountain Lion)

4

Ich benutze MacVim:

:version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug 10 2013 17:49:20)
MacOS X (unix) version

Ich habe ausgeführt: version in vim (um zu überprüfen, welche Patches ich installiert habe) und die folgenden zwei Zeilen als Teil der Ausgabe bemerkt:

 user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"

Wofür ist der 2. Benutzer und wie würden Sie ihn verwenden?

Ich habe diese Frage gefunden und gelesen: https://apple.stackexchange.com/q/34996/10733 ,

Die Antwort zeigt jedoch, wie man ~ / .vim / vimrc in .vimrc integriert.

Ich habe auch die folgende Suche in Google durchgeführt, die nichts Interessantes ergab: 2. Benutzer in vim und ~ / .vim / vimrc , und wie man ~ / .vim / vimrc benutzt

Deesbek
quelle
Würde es Ihnen etwas ausmachen, wenn wir dies auf SuperUser migrieren? Möglicherweise erhalten Sie dort bessere Antworten.
Nohillside
Natürlich keine Probleme. Ich hätte es selbst dort hinstellen sollen. Ich würde ein Kopfgeld hinzufügen, wenn die Zeit es erlaubte.
Deesbek
1
Dies ist etwas Neues in vim 7.4, wo sie einen anderen (zusätzlichen) vimrc-Standardspeicherort haben. Welche Version von Vim verwenden Sie (als Standard auf dem Mac sollte diese Ausgabe nicht haben)
FDinoff

Antworten:

5

Die "2nd user vimrc file" ist eine neue Erweiterung von Vim, die möglicherweise in sehr späten Versionen von Vim 7.3, aber sicherlich von Vim 7.4 erscheint.

Einige Benutzer haben diesen zweiten Speicherort für ihre persönliche vimrc-Datei angefordert, damit sie alle ihre Vim-Konfigurationsdateien in einem Verzeichnis speichern können: ~ / .vim unter Unix oder ~ / vimfiles unter Windows.

Wie es in sagt :help vimrc,

Die Dateien werden in der oben angegebenen Reihenfolge durchsucht und nur die erste gefundene Datei wird gelesen.

Wenn Sie also sowohl ~ / .vimrc- als auch ~ / .vim / vimrc-Dateien haben, wird nur ~ / .vimrc verwendet. Die meisten Benutzer verwenden entweder den einen oder den anderen, aber nicht beide.

garyjohn
quelle
Ich lade gerade den Code herunter und lese ihn. Aber von dem, was du oben geschrieben hast, ist @Vucars Antwort nicht korrekt?
Deesbek
Ja, die Antwort von Vucar ist nicht korrekt, da sowohl ~ / .vimrc als auch ~ / .vim / vimrc gelesen werden, wenn beide vorhanden sind. Vucar kann zwischen diesen Dateien und dem System vimrc verwechselt werden.
Garyjohn
@Deesbek: Sie haben Recht, ich habe den Code nicht sorgfältig genug gelesen. Es wird tatsächlich die erste der gefundenen Dateien ausgewählt. Ich bearbeite meine Antwort, sobald ich etwas Zeit dazu habe.
Vucar Timnärakrul
1

Ich habe den Code durchgesehen, der die Ausgabe von :versionund die verschiedenen Stellen behandelt, von denen die .vimrc-Datei stammt.

Abhängig vom verwendeten Betriebssystem werden Initialisierungsdateien (z. B. .vimrc) an mehreren Stellen gesucht. Bei einigen Betriebssystemen (wie Amiga und höchstwahrscheinlich auch Mac) wird mehr als ein Verzeichnis untersucht. Es kann bis zu vier verschiedene Orte geben, die Ihnen wiederum geben würden:

  • user vimrc file;
  • 2nd user vimrc file;
  • 3rd user vimrc file und
  • 4th user vimrc file.

(Interessierte finden den interessanten Teil in version.c um Zeile 1184.)

Soweit ich den Rest des Codes verstehe, wird jede dieser Dateien in der obigen Reihenfolge bezogen und beendet, sobald einer dieser Pfade nicht existiert (vgl. Main.c um Zeile 2993).

In Ihrem speziellen Fall würde vim also zuerst versuchen zu lesen $HOME/.vimrc. Wenn es existiert, wird es beschafft und vim sucht ~/.vim/vimrc. Wenn es existiert, wird es auch gelesen.

Sie können dies überprüfen, indem Sie einige Befehle in eine echo "something"der beiden Dateien einfügen, die eine Ausgabe erzeugen, z. B. in eine der vimrc-Dateien.

Vucar Timnärakrul
quelle