Ist es möglich und nützlich, vimrc aufzuteilen?


21

Kann man die vimrcDatei laut Titel in mehrere Unterdateien aufteilen ? Separate Dateien für Gruppen von Einstellungen aufbewahren, die eine Sache betreffen ? Das Ding kann alles sein, jede Art von benutzerdefinierter Gruppe von Einstellungen. Beispielsweise,

[aktualisiert]

  • Behalten Sie alle Python (-Modus) -bezogenen Einstellungen bei vimrc.python-mode?
  • Behalten Sie die Einstellungen für das Kalender-Dienstprogramm für vim bei vimrc.calendar?
  • Farbeinstellung in einer separaten Datei behalten?
  • halte Mappings (aka Abkürzungen?) in einer separaten Datei?

3
Die Kehrseite: Standortbasierte Gruppierung statt Dateityp-basiert. Siehe vi.stackexchange.com/q/77/205
muru

Könnte die gesuchte Antwort in den Zeilen von vi.stackexchange.com/a/3152/1963 stehen ? Quelldateien, die die Einstellungen enthalten, die ich für bestimmte Dinge benötige?
Nikos Alexandris

Entfernt , um den filetypeTag - für jetzt vielleicht? Es lässt den Leser denken, dass die Fragen sich auf bestimmte Dateitypen beziehen, was nicht der Fall ist.
Nikos Alexandris

es schien angemessen angesichts der ursprünglichen Frage.
muru

@muru Ja, keine Sorge. Wir könnten das später auch hinzufügen. Vielen Dank.
Nikos Alexandris

Antworten:


22

Ja, dies ist möglich und nützlich und wird sogar als Best Practice angesehen. Sie werden in Vim-Sprache als Dateityp-Plugins bezeichnet. Vim enthält sogar viele Dateityp-Plugins (sowie Einrückungs- und Syntaxdateien) für mehrere Sprachen.

Sie müssen dies folgendermaßen aktivieren .vimrc:

filetype plugin on

Fügen Sie dann Ihre spezifischen Dateitypeinstellungen in eine Datei ein (erstellen Sie nicht vorhandene Verzeichnisse), die als ~/.vim/ftplugin/python.vimPython-Einstellungen bezeichnet wird. Dies wird auch in den FAQ behandelt .

Update (13.11.2015) Es gibt auch eine andere Möglichkeit (wenn Sie keine Dateityp-spezifischen Optionen verwenden möchten): Wenn Sie einige Optionen in einer bestimmten Datei gruppieren möchten, können Sie den Befehl sourceoder verwenden runtime. Zum Beispiel .vimrcenthält my diese Zeile:

" This script contains plugin specific settings
source ~/.vim/plugins.vim
" This script contains mappings
source ~/.vim/mapping.vim
" additional helper functions:
source ~/.vim/functions.vim
" For abbreviations read in the following file:
source ~/.vim/abbrev.vim

Schön, das habe ich schon! Aber nie wirklich genau hinsehen. Also habe ich Vimrc aufgepumpt. Was ist mit Einstellungen, die keinen bestimmten Dateityp betreffen?
Nikos Alexandris

2
Sie brauchen :he autoloadund :he source? Überprüfen Sie auch diese Antwort stackoverflow.com/a/805242/1821490
Alex Kroll

@AlexKroll nicht für Dateityp-Plugins.
Christian Brabandt

@ChristianBrabandt für alles, was Sie wollen. Sie können ein beliebiges Skript in .vimrc. Setzen Sie einfach eine source my-funy-useful-script.vimZeile in Ihr .vimrcund Vim lädt sie nach dem Neustart (oder :so $MYVIMRCBefehl). :he writing-library-scriptsKann Ihnen auch helfen.
Alex Kroll

@ AlexKroll Ich denke, das ist näher an der Antwort, die ich suche. Würde es Ihnen etwas ausmachen, die aktuelle Antwort zu bearbeiten und zu erweitern? Oder machen Sie eine separate Antwort? Ich suche nicht nur nach bestimmten Dateitypen. Ich hoffe das ist klar in meiner Frage.
Nikos Alexandris

4

Es ist völlig möglich, das zu tun, was Sie wollen. Einige der anderen haben über Dateityp-Plugins gesprochen, die dafür gut geeignet sind.

Sie können jedoch eine Quell- und eine VIM-Datei in Ihrem VIMRC speichern, sodass Sie die VIMRC in so viele Dateien aufteilen können, wie Sie möchten. Quell einfach die Datei und es wird funktionieren. Als Beispiel hier sind meine (wahrscheinlich nicht sehr nützlichen) Punktedateien. https://github.com/dspecht/dotfiles/


Könnten Sie bitte ein Beispiel geben, was Sie in Ihrer Antwort getan haben und warum es funktioniert?
EvergreenTree
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.