Laden Sie .vimrc in Vim neu, ohne den Computer neu zu starten

93

Es stört mich, wenn ich etwas geschrieben habe .vimrcund ich muss es zuerst schließen und öffnen, damit meine Änderungen übernommen werden. Gibt es eine Möglichkeit, .vimrcVim neu zu laden, ohne es zu schließen?

Zum Beispiel habe ich hinzugefügt set nuzu ~/.vimrcund ich möchte Zeilennummern für alle meine Fenster und Puffer erscheinen.

Nemoden
quelle

Antworten:

129

:source ~/.vimrc

Führen Sie das aus vim heraus aus .vimrc

Abwechselnd

:source $MYVIMRC

Freidenker
quelle
18

Hier ist eine für die Nachwelt. Fügen Sie Ihrem .vimrc Folgendes hinzu:

map <leader>vimrc :tabe ~/.vim/.vimrc<cr>
autocmd bufwritepost .vimrc source $MYVIMRC

Die erste Zeile bedeutet, dass Sie Ihren vimrc aus einem beliebigen vim-Puffer öffnen können, indem Sie Ihren Anführer eingeben und dann "vimrc" schreiben. Beispielsweise ist mein Anführer auf Komma eingestellt. Wenn ich mich im Bearbeitungsmodus befinde und ", vimrc" eingebe, wird mein vimrc in einem neuen Tab geöffnet.

In der zweiten Zeile werden die Änderungen automatisch an Ihrem vimrc abgelegt, wenn Sie ihn speichern und schließen. Es ist Magie.

Dean
quelle
1
Ideal würden Sie nicht map <leader>vimrc :tabe $MYVIMRC<cr>das autocmd zusammenbringen?
Nick Bisby
@NickBisby Für mich ~/.vimrcist nur ein Stub, ~/.vim/.vimrcdamit ich alles unter Quellcodeverwaltung behalten kann. Für die meisten Leute ist das richtig :tabe $MYVIMRC<cr>.
Dean
1
Alternativ können Sie einen symbolischen Link zu Ihrer eigentlichen .vimrc-Datei verwenden, anstatt einen Stub zu haben.
Spoike
Wie kann ich vimrc neu laden, ohne die Position meines Cursors zu ändern?
SergioAraujo
15

:so %

Wenn Sie gerade .vimrc bearbeiten

storypixel
quelle
4
" Quickly edit/reload this configuration file
nnoremap gev :e $MYVIMRC<CR>
nnoremap gsv :so $MYVIMRC<CR>

Um beim Speichern automatisch neu zu laden, fügen Sie Folgendes zu Ihrer hinzu $MYVIMRC:

if has ('autocmd') " Remain compatible with earlier versions
 augroup vimrc     " Source vim configuration upon save
    autocmd! BufWritePost $MYVIMRC source % | echom "Reloaded " . $MYVIMRC | redraw
    autocmd! BufWritePost $MYGVIMRC if has('gui_running') | so % | echom "Reloaded " . $MYGVIMRC | endif | redraw
  augroup END
endif " has autocmd

und geben Sie dann zum letzten Mal Folgendes ein:

:so %

Wenn Sie das nächste Mal speichern vimrc, wird es automatisch neu geladen.

Eigenschaften:

  • Teilt dem Benutzer mit, was passiert ist (auch beim Einloggen :messages)
  • Behandelt verschiedene Namen für die Konfigurationsdateien
  • Stellt sicher, dass es nur mit der tatsächlichen Konfigurationsdatei übereinstimmt (ignoriert Kopien in anderen Verzeichnissen oder ein fugitive://Diff)
  • Bei Verwendung von wird kein Fehler generiert vim-tiny

Das automatische Neuladen findet natürlich nur statt, wenn Sie Ihr vimrcin vim bearbeiten .

Tom Hale
quelle