Kann .vimrc in mehrere Dateien unterteilt werden?

11

Angenommen, ich habe einige hundert benutzerdefinierte Neuzuordnungen iabfür Java und etwa hundert weitere Neuzuordnungen für Haskell. Dann möchte ich diese in verschiedene Dateien aufteilen, um die Verwaltung zu vereinfachen. Was ich suche, ist so etwas zu schaffen:

~/.
 ├── .vimrc
 └── .vim
     └── custom
         ├── java.vim
         └── haskell.vim

Wo .vimrc so aussehen könnte

import java
import haskell

Ist so etwas möglich oder mache ich die Dinge nur zu kompliziert? Ich denke, was ich zu erreichen versuche, ist das, was man in LaTeX mit dem \inputBefehl macht ...

Lindhe
quelle
2
Gibt es einen Grund, warum Sie diese nicht eingeben ~/.vim/after/ftplugin/$language.vim?
wchargin
1
Nicht wirklich, sollte ich? Was soll rein gehen after/ftplugin?
Lindhe
2
Wenn Sie eine Datei mit dem Namen z. B. schreiben, ~/.vim/after/ftplugin/java.vimwird diese automatisch ausgeführt, wenn Sie eine javaDatei öffnen . Dies scheint das zu sein, was Sie wollen.
wchargin

Antworten:

5

Sie suchen nach ftplugins. Das ist ihr Zweck.

Und vergessen Sie nicht, Ihre Zuordnungen, Einstellungen, Abkürzungen, Befehle usw. als lokal zu definieren. Andernfalls parasitieren sie andere Puffer, sobald sie geladen sind.

Hier einige vollständigere Antworten:

Luc Hermitte
quelle
11

Ja, der vim-Befehl, den Sie suchen, ist :sourceoder :runtimezum Abrufen runtimepath.

Zum Beispiel könnten Sie dies in Ihrem .vimrc:

runtime custom/java.vim
runtime custom/haskell.vim

Vermutung ~/.vimist in Ihrem runtimepath(was es standardmäßig ist).

Sie können Ihre Skripte auch im ~/.vim/pluginVerzeichnis ablegen. Siehe Schreib-Plugin in den Dokumenten. Vim führt automatisch alle Skripte im Plugin-Verzeichnis aus.

derobert
quelle
Cool. Gibt es eine Namenskonvention für das, was ich hier genannt habe custom, die nicht ganz Plugins sind, sondern Dateien, die genauso gut enthalten sein könnten .vimrc?
Lindhe
1
@ Lindh-E Nicht dass ich es wüsste. Sie möchten wahrscheinlich etwas verwenden, von dem Sie sicher sind, dass es in einer zukünftigen vim-Version keine Bedeutung erhält. Da sie bestrebt sind, mit 8.3-Dateinamen kompatibel zu bleiben, würde ich einen Verzeichnisnamen> 8 Zeichen vorschlagen.
Derobert