Tidak ada opsi :help 'autosave'
bawaan , meskipun (dalam todo.txt) merujuk pada deskripsi tentang apa yang bisa dilakukan opsi semacam itu.
Salah satu cara yang mungkin untuk mengimplementasikan ini adalah dengan menggunakan CursorHold
acara perintah otomatis . Peristiwa ini dipicu ketika pengguna belum menekan tombol selama 'updatetime'
milidetik.
autocmd CursorHold * update
The :update
perintah hanya menghemat buffer jika dimodifikasi. Jika Anda juga menginginkan ini terjadi saat mode insert aktif, CursorHoldI
dapat ditambahkan ke daftar acara.
autocmd CursorHold,CursorHoldI * update
Alternatif lain adalah 'autowrite'
opsi, yang akan menyimpan buffer sebelum menjalankan perintah eksternal (berguna untuk menyimpan sebelum menjalankan :make
) atau beralih ke buffer yang berbeda.
Vim memang memiliki fitur simpan otomatis, tetapi menyimpannya ke file "pemulihan".
Ketika Anda mengedit dokumen, misalnya
MyFile.txt
vim akan membuat file revovery.MyFile.txt.swp
. Jika sistem Anda mogok, atau sesi Anda mati, maka Anda dapat menyambung kembali, dan memulihkan dari tempat Anda tinggalkan, dengan mengetik:Ini akan membuka file untuk diedit, dan memulihkan perubahan terakhir yang Anda buat.
Anda kemudian dapat menyimpan versi yang dipulihkan dengan cara biasa
:w
.Sayangnya, ketika Anda keluar dari vim, itu akan meninggalkan
.MyFile.txt.swp
sekitar, dan Anda harus menghapusnya secara manual:Lihat halaman Man "Pemulihan" Juga Bab 11
sumber
:wq
atau:q!
atauZZ
atau dll.), Swap file secara otomatis harus dihapus.Saya membuat plugin vim-autosave yang menggunakan fitur Vim 8 dari Timers untuk secara berkala menyimpan buffer Anda.
sumber
Saya membuat Vim saya menyimpan semuanya setiap kali fokus hilang.
Pola saya cukup panjang dan saya menggunakannya dalam beberapa autocmds tetapi untuk kelengkapannya seperti ini:
sumber
Seperti yang telah ditunjukkan orang lain, vim memiliki file swap (.swp) yang akan dibuat di mana pun file asli Anda, tetapi dalam file .vimrc Anda, Anda dapat mengatur direktori .swp.
Anda harus membuat direktori dengan
mkdir
dan kemudian mengatur .vimrc Anda ke lokasi itu.sumber
The vim-kerja plugin memiliki fitur yang cukup disesuaikan auto-save yang mungkin sesuai dengan kebutuhan Anda. Secara default, ini memungkinkan penyimpanan otomatis ketika dalam sesi ruang kerja (fitur utamanya), tetapi Anda dapat mengaturnya untuk selalu menyimpan otomatis jika hanya itu yang Anda cari (
let g:workspace_autosave_always = 1
).sumber
Cobalah untuk menyimpan buffer setiap kali teks diubah:
Ini bekerja untuk saya.
Sumber
sumber