Legen Sie ".vimrc" in den Ordner ".vim"

24

Ist es möglich, die .vimrcin den .vimOrdner zu legen, so dass ich nur den gesamten Ordner und nicht Ordner und Datei mit anderen Computern synchronisieren muss?

Martin Ueding
quelle
2
Möglicherweise möchten Sie alle Ihre Punktedateien in einem revisionskontrollierten Repository aufbewahren. Alle meine Punktedateien werden in einem von git verwalteten Verzeichnis gespeichert. Dieses Repository enthält auch Skripte, mit denen nach Unterschieden zwischen dem Repository und den installierten Punktdateien gesucht werden kann, sowie ein Skript, mit dem die Punktdateien an die richtigen Speicherorte kopiert werden können. Um einen anderen Rechner einzurichten, kopiere ich im Grunde das Repo und führe das Installationsskript aus.
Roland Smith
Ich habe das gleiche System, mein Dotfile wurde sogar aus vielen verschiedenen Quelldateien kompiliert, da eine einzelne Datei zu lang wurde :-D
Martin Ueding
@ RolandSmith Wie richten Sie ein Repo mit Ihren Punktedateien ein? Eine Möglichkeit, die ich mir vorstellen kann, besteht darin, git init in Ihrem Ausgangsordner auszuführen und alles außer den Punktedateien, die Sie verfolgen möchten, auszuschließen.
adammendoza
@adammendoza Ich verwalte sie nicht vor Ort. Ich fasse alles in einem Verzeichnisbaum zusammen und installiere es mit einem Skript namens deploy . Lesen Sie die Beschreibung auf der verlinkten Github-Seite, um zu sehen, wie es funktioniert.
Roland Smith
Es gibt ein Tool namens VCSH, mit dem Sie sie in guy aus Ihrem Home-Verzeichnis verfolgen können, aber das Repo an einem anderen Ort aufbewahren können.
Martin Ueding

Antworten:

28

Ab Vim 7.4 können Sie eine Datei auch einfach vimrcin $HOME/.vim/vimrcoder $HOME/vimfiles/vimrcfür Windows platzieren und Vim findet sie automatisch.

Beachten Sie, dass dies vimrcohne ein ist. (Punkt) oder _ (Unterstrich) wie die herkömmliche .vimrc / _vimrc-Datei.

Ben
quelle
Hört sich gut an. Wenn Sie möchten, können Sie Ihren Code in Backticks ablegen.
Martin Ueding
7.4 ist jetzt auch aus der Beta ... also ist dies wahrscheinlich der beste Weg, es jetzt zu tun.
Ben
+1 für meine neue Standardmethode zum Verwenden dieser Dateien. Falls ich mich auf einem Computer
befinde
@Ben: Nun, es wird eine Weile dauern, bis ich 7.4 auf meinem Ubuntu-Rechner ohne Backports habe, also wird es vorerst so bleiben.
Martin Ueding
15

Ich behalte meine .vimrc in .vim und verlinke sie.

ln -s ~/.vim/.vimrc ~/.vimrc

Unter Windows kann man das meines Erachtens auch mit mklink machen.

jeremyhtml
quelle
Ich mache das und habe auch das .vimrc-Verzeichnis auf github, was das Einrichten eines neuen Kontos sehr einfach macht. Dies wird in den ersten Schritten dieses Vimcasts beschrieben
pmac72
5

Wenn Sie einen Alias ​​für vim erstellen, um den Speicherort der .vimrc wie folgt anzugeben:

alias vim='vim -u ~/.vim/vimrc'

dann könnten Sie .vimrc nicht mehr separat haben.

ABER

Dies führt zu Problemen mit anderen Programmen, die mit vim interagieren. Das Drücken von 'v' in 'less' funktioniert nicht, da es vim über den Inhalt der EDITOR env-Variablen aufruft. Ich nehme an, Sie könnten das '-u ...' - Bit in die EDITOR-Variable einfügen. könnte funktionieren.

Für gvim verwenden Sie dort ein U in Großbuchstaben, um den Speicherort der .gvimrc-Datei anzugeben. Auch hier treten Probleme auf, es sei denn, Sie ändern JEDEN möglichen Startort von gvim in den Startlinks Ihres Fenstermanagers.

Alles in allem würde ich vorschlagen, @ Remyo Vorschlag zu verwenden, wenn Sie alles in einem Unterverzeichnis haben müssen.

Es ist relativ einfach, ein Post-Pull-Skript zu erstellen, das die Verknüpfung zwischen 'repo / .vimrc' und '~ / .vimrc' wiederherstellt.

Viel Glück.

(Sie können vim selbst neu kompilieren und einen neuen Standardspeicherort für die .vimrc-Datei angeben.)

Lornix
quelle
1
Okay, das klingt nach mehr Problemen als nach Lösungen.
Martin Ueding
2

Genau das mache ich mit dieser einzelnen Zeile in meinem ~/.vimrc:

runtime vimrc
romainl
quelle
2
Okay, aber ich muss noch eine haben .vimrc. Dann benutze ich einfach das, was du mir in der anderen Frage gegeben hast.
Martin Ueding