Im Vim-Befehlszeilen-Texteditor, der seit Jahren von vielen Programmierern geliebt wird, ist das vim-auto-save Plugin praktisch zum automatischen Speichern von Dateien nach jedem Tastendruck oder jeder paar Millisekunden ohne manuelles Speichern (:w).

Ich wollte eine Möglichkeit, Dateien direkt zu bearbeiten, oder Live-Bearbeitung, bei der Dateien nach jedem eingegebenen Zeichen oder jeder paar Millisekunden automatisch gespeichert werden, ohne manuell speichern zu müssen. Es war mein erstes Mal, ein Vim-Plugin zu installieren, daher hat es etwas Mühe gekostet, aber die Verwendung ist sehr einfach.
Installation (The Ultimate vimrc)
Ich verwende The Ultimate vimrc, das eine anfängerfreundliche Vim-Umgebung mit vielen nützlichen Funktionen erstellt.
amix/vimrc: The ultimate Vim configuration: vimrc
Die beliebtesten Vim-Plugin-Manager sind in dieser Reihenfolge Vundle, vim-plug und pathogen, aber The Ultimate vimrc scheint nur pathogen zu unterstützen.
tpope/vim-pathogen: pathogen.vim: manage your runtimepath GitHub - amix/vimrc: The ultimate Vim configuration: vimrc
Um also vim-auto-save mit pathogen in The Ultimate vimrc zu installieren, verwenden Sie den folgenden Befehl:
git clone https://github.com/907th/vim-auto-save ~/.vim_runtime/my_plugins/vim-auto-save
vim-auto-save - Vim Awesome 907th/vim-auto-save: Automatically save changes to disk in Vim
Installation (Außer The Ultimate vimrc)
Verwendung
Standardmäßig wird es nur angewendet, wenn der Insert-Modus verlassen wird und wenn sich der Text als Ergebnis der Ausführung eines Befehls im Normalmodus ändert.
Using InsertLeave and TextChanged only, the default, will save on every change in normal mode and every time you leave insert mode.
let g:auto_save_events = ["InsertLeave", "TextChanged"]
Sie können Referenzen für alle Ereignisse mit :h autocommand-events sehen. Ich habe sie alle durchgegangen. Vim ist erstaunlich.
Hier sind die Ereignisse, die nützlich erscheinen:
TextChangedI … Wird ausgelöst, wenn sich Text im Insert-Modus ändert CursorHoldI … Wird alle paar Millisekunden im Insert-Modus ausgelöst CursorMovedI … Wird ausgelöst, wenn sich der Cursor im Insert-Modus bewegt
Also habe ich Folgendes in meine .vimrc eingefügt:
let g:auto_save_events = ["InsertLeave", "TextChanged", "TextChangedI"]
Um dies zu aktivieren, führen Sie den Befehl :AutoSaveToggle im Normalmodus aus, um die Aktivierung umzuschalten.
Das folgende GIF zeigt die tatsächliche Verwendung mit den obigen Einstellungen.
