![Gibt es eine Möglichkeit, eine separate vimrc-Datei nur für eine Sitzung bereitzustellen?](https://rvso.com/image/52120/Gibt%20es%20eine%20M%C3%B6glichkeit%2C%20eine%20separate%20vimrc-Datei%20nur%20f%C3%BCr%20eine%20Sitzung%20bereitzustellen%3F.png)
Ich würde gerne wissen, ob es in vim/vi eine Möglichkeit gibt, eine andere vimrc-Datei bereitzustellen. Ich möchte 2 verschiedene vimrc-Dateien verwalten. Für die Inhalte, die ich in der Versionskontrolle auschecke/einchecke, möchte ich einen anderen Befehlssatz verwenden und nicht den normalen in meiner .vimrc
Datei
Zum Beispiel.
Meine .vimrc
Datei enthält einen Befehl zum automatischen Löschen von Leerzeichen am Ende einer Datei beim Speichern. Ich möchte diese Funktion jedoch nicht für bestimmte Dateien aktivieren.
Gibt es also eine Möglichkeit, eine andere vimrc-Datei bereitzustellen (vielleicht in der Befehlszeile, indem man sie jedes Mal als Parameter angibt, z. B. vim --vimrc=somefile file-to-open)?
Antwort1
Siehe die Manpage:
-u {vimrc} Benutzt die Befehle in der Datei {vimrc} für Initialisierungen. Alle anderen Initialisierungen werden übersprungen. Verwenden Sie dies, um eine spezielle Art von Dateien zu bearbeiten. Es kann auch verwendet werden, um alle Initialisierungen zu überspringen, indem Sie den Namen "NONE" angeben. Weitere Einzelheiten finden Sie unter ":help initialization" in vim.
Antwort2
Gibt es also eine Möglichkeit, eine andere vimrc-Datei bereitzustellen (vielleicht in der Befehlszeile, indem man sie jedes Mal als Parameter angibt, z. B. vim --vimrc=somefile file-to-open)?
Ja, verwenden Sie den -u
Parameter:
vim -u ~/.my-custom-vimrc
Aus man vim
:
-u {vimrc} Use the commands in the file {vimrc} for initializations.
All the other initializations are skipped. Use this to
edit a special kind of files. It can also be used to skip
all initializations by giving the name "NONE". See ":help
initialization" within vim for more details.
Meine .vimrc-Datei enthält einen Befehl zum automatischen Löschen von Leerzeichen am Ende einer Datei beim Speichern. Ich möchte diese Funktion jedoch nicht für bestimmte Dateien aktivieren.
Wenn Sie für einige bekannte Dateitypen eine spezielle Behandlung benötigen, gibt es eine andere Lösung. Verwenden Sie den autocmd
Befehl in Ihrer vimrc. Dies ist beispielsweise meine dateitypabhängige Konfiguration:
" Mapping of filetypes to options
au FileType freerad setl noexpandtab sts=0 sw=8
au FileType make setl noexpandtab sts=0
au FileType php let php_sql_query=1
au FileType php let php_htmlInStrings=1
au FileType python setl shiftwidth=2 expandtab
au FileType sql setl noexpandtab sts=0 sw=8
" global options I do not want any filetype to override
au FileType * setl formatoptions-=ro " don't continue comments
Wenn Sie Optionen auf etwas anwenden müssen, dem vim nicht automatisch einen bestimmten Dateityp zuweist, können Sie Ihre eigene Zuordnung hinzufügen (tun Sie das, bevor Sie den autocmd
Befehl verwenden):
" mapping of filenames to filetypes
au FileReadPost,BufReadPost,BufNewFile /etc/freeradius/* setl ft=freerad
au FileReadPost,BufReadPost,BufNewFile *.xt setl ft=xt
Antwort3
Sie können set exrc
in Ihrer Haupt-.vimrc auch veranlassen, dass vim automatisch eine .vimrc aus dem aktuellen Verzeichnis lädt.
Antwort4
Wenn Sie Ihr Vim-Konfigurationsverzeichnis unter Git speichern (das hoffe ich), können Sie verschiedene Zweige verwenden und zwischen ihnen auschecken.