Jawaban atas pertanyaan judul Anda adalah apa yang Anda amati. Dari manual pengguna vim:help 21.3
Ketika Anda menjalankan Vim beberapa kali, yang terakhir keluar akan menyimpan informasinya. Ini dapat menyebabkan informasi yang sebelumnya keluar dari Vims disimpan menjadi hilang. Setiap item hanya dapat diingat satu kali.
Namun, nama file dari file viminfo (tempat sejarah perintah disimpan, antara lain seperti tanda global dan daftar konten, jika dikonfigurasi) dapat diubah! Ini berarti Anda dapat mengatur 'histori' yang berbeda untuk berbagai proyek atau instance vim. Dengan asumsi Anda tidak menjalankan lebih dari satu instance vim per proyek, mengelola nama file viminfo melalui vimrc (atau plugin pengaturan proyek lainnya) adalah cara yang bagus untuk menangani hal ini.
Siapkan file viminfo alternatif
Untuk manajemen tingkat proyek, kami ingin mengonfigurasi vim untuk menyimpan viminfo Anda ke file yang berbeda. Ini dapat dilakukan dalam vim yang berjalan sebelum berhenti, atau dengan vimrc Anda, misalnya Anda mungkin memiliki baris di vimrc Anda yang mendeteksi direktori tertentu sebagai bagian dari suatu proyek.
:set viminfo+=nPath/to/custom/viminfofile
Contoh memiliki vimrc secara otomatis mengatur ini berdasarkan direktori:
if getcwd() == "/projects/projA"
set viminfo+=n~/.viminfo-projA
endif
Hasil di atas adalah bahwa sejarah spesifik proyek akan dimuat saat startup dan disimpan saat keluar, jika vim diluncurkan di direktori / projects / projA.
Memuat viminfo alternatif selama startup
Ini bagus untuk kasus di mana Anda ingin menyimpan riwayat Anda ke samping dan memuatnya nanti, tanpa mengelolanya di tingkat proyek.
Pertama, untuk menyimpan histori, Anda menambahkan ke opsi viminfo seperti di atas sebelum keluar. Kemudian untuk memuat histori, luncurkan vim dengan opsi -i
vim -i Path/to/custom/viminfofile
Jika Anda tidak ingin keluar dari vim untuk menyimpan file viminfo, Anda dapat menggunakan :wv
( :wviminfo
). Ini menyimpan file viminfo tanpa keluar vim sesuai dengan pengaturan n di atas. Dan, Anda juga dapat melakukan :wv SomeOtherFile
untuk menyimpan ke lokasi yang tidak sama dengan pengaturan di opsi viminfo. Ini mungkin lebih nyaman daripada mengatur nama file untuk digunakan saat keluar, tetapi tidak menghentikan vim dari menggunakan file default setelah keluar.
Misalnya, dalam vim pertama:
:wv ~/customInfo
dan di terminal kedua:
vim -i ~/customInfo
Atau, jika vim kedua sudah berjalan dan Anda ingin memuat viminfo:
:rv ~/customInfo
Perhatikan bahwa :wv
dan :rv
jangan mengubah nama file vim akan menghemat saat keluar atau nama file dibaca saat startup.
Informasi tambahan
Deskripsi set viminfo+=nSomePath
: Kami menggunakan perintah set untuk menyesuaikan opsi bernama viminfo
. The +=
menunjukkan kita ingin menambahkan ke pilihan, tidak semuanya berubah. Kami menambahkan n
opsi yang menentukan nama file untuk viminfo. Segera setelah n
kami memiliki SomePath
yang akan menjadi nama file yang digunakan untuk menyimpan viminfo.
Dokumentasi untuk wv
( :help wv
) menunjukkan bahwa perintah ini pertama-tama akan membaca file viminfo, kemudian menggabungkan antara informasi lama dan baru. Sejauh ini saya tidak memiliki informasi tentang bagaimana penggabungan berfungsi dalam kasus ini, tapi saya kira itu menyimpan tanda untuk file yang tidak dikenal dan register yang tidak diatur dalam sesi saat ini.