Liebe Nutzer dieses Plugins! Sorry, aber ich pflege es nicht mehr! Wenn jemand von Ihnen daran interessiert ist, es zu pflegen, kontaktieren Sie mich bitte und ich werde Sie als Mitwirkenden hinzufügen.
AutoSave – speichert Änderungen automatisch auf der Festplatte, ohne jedes Mal, wenn ein Puffer geändert wurde, oder basierend auf Ihren bevorzugten Ereignissen :w
(oder eine Bindung daran) verwenden zu müssen.
Inspiriert von der gleichen Funktion im RubyMine-Texteditor.
Standardmäßig speichert AutoSave jedes Mal, wenn im normalen Modus etwas geändert wurde und wenn der Benutzer den Einfügemodus verlässt. Diese Konfiguration ist eine Mischung aus „So oft wie möglich speichern“ und „Vermeiden Sie, andere Plugins zu beschädigen, die von Filewrite-Ereignissen abhängen“.
Verwenden Sie Vundle oder laden Sie die Paketversion von vim.org herunter.
AutoSave ist standardmäßig deaktiviert. Führen Sie :AutoSaveToggle
aus, um es zu aktivieren/deaktivieren.
Wenn Sie möchten, dass das Plugin beim Start aktiviert wird, verwenden Sie die Option g:auto_save
.
" .vimrc
let g: auto_save = 1 " enable AutoSave on Vim startup
Es ist auch möglich, den globalen g:auto_save
Wert einzeln pro Puffer oder Fenster zu überschreiben. Wenn Sie beispielsweise die automatische Speicherung global aktiviert haben, können Sie einige Dateien deaktivieren. Und umgekehrt: Aktivieren Sie einige Dateien, wenn Sie die automatische Speicherung global deaktiviert haben.
let g: auto_save = 0
augroup ft_markdown
au !
au FileType markdown let b: auto_save = 1
augroup END
AutoSave wird standardmäßig bei jedem automatischen Speichern in der Statuszeile angezeigt:
(AutoSave) saved at 08:40:55
Sie können die Anzeige mit der Option g:auto_save_silent
stummschalten:
" .vimrc
let g: auto_save_silent = 1 " do not display the auto-save notification
Die Ereignisse, bei denen AutoSave eine Speicherung durchführt, können mit der Option g:auto_save_events
angepasst werden. Wenn Sie standardmäßig nur InsertLeave
und TextChanged
verwenden, wird bei jeder Änderung im normalen Modus und bei jedem Verlassen des Einfügemodus gespeichert.
" .vimrc
let g: auto_save_events = [ " InsertLeave " , " TextChanged " ]
Andere Ereignisse, die Sie möglicherweise nutzen möchten:
TextChangedI
wird gespeichert, nachdem im Einfügemodus eine Änderung am Text im aktuellen Puffer vorgenommen wurde.CursorHold
speichert alle Millisekunden, die in der Option updatetime
im Normalmodus definiert sind.CursorHoldI
macht im Einfügemodus dasselbe.CompleteDone
löst außerdem nach jedem Abschlussereignis einen Speichervorgang aus. Abhängig von Ihrer Vim-Installation sind einige dieser Befehle möglicherweise nicht verfügbar. Eine vollständige Liste finden Sie in der Autocommands-Übersicht ( :h autocommand-events
).
Warnung! Seien Sie vorsichtig mit der Option updatetime
da sie nachweislich Probleme verursacht, wenn sie zu klein eingestellt ist. 200 scheint bereits zu klein zu sein, um mit bestimmten anderen Plugins zu funktionieren. Verwenden Sie 1000 für eine konservativere Einstellung.
Wenn Sie einen Autosave-Hook benötigen (z. B. um Tags nach dem Speichern zu generieren oder das Speichern früher abzubrechen), verwenden Sie die Optionen g:auto_save_postsave_hook
oder g:auto_save_presave_hook
:
" .vimrc
" This will run :TagsGenerate after each save
let g: auto_save_postsave_hook = ' TagsGenerate '
" This will run AbortIfNotGitDirectory function before each save
let g: auto_save_presave_hook = ' call AbortIfNotGitDirectory() '
" Example hook from vim-auto-save-git-hook plugin
function ! AbortIfNotGitDirectory ()
if ...
let g: auto_save_abort = 0
else
let g: auto_save_abort = 1
endif
endfunction
Standardmäßig wird nur der aktuelle Puffer geschrieben (wie :w
). Mit der Option g:auto_save_write_all_buffers
(wie :wa
) können Sie festlegen, dass alle Puffer beim automatischen Speichern geschrieben werden.
" .vimrc
let g: auto_save_write_all_buffers = 1 " write all open buffers as if you would use :wa
Die doc/auto-save.txt
ist eine konvertierte Version der README.md
. Bearbeiten Sie es nicht direkt. Installieren Sie stattdessen md2vim und führen Sie das Skript update_doc_from_readme.sh
aus.
Die Entwicklung erfolgt im 907th/vim-auto-save Repo. Bitte melden Sie dort etwaige Fehler und/oder Vorschläge. Jeder Beitrag ist willkommen!
Verteilt unter der MIT-Lizenz (siehe LICENSE.txt).
Copyright (c) 2013-2021 Aleksei Chernenkov