Vim menyimpan riwayat perintah ex (dapat diakses melalui :↑dan q:), dan riwayat itu tetap ada setelah berhenti.
Jika saya menjalankan beberapa instance Vim (pengguna yang sama, direktori home yang sama), bagaimana Vim melakukan arbitrase di antara sejarah perintah? Tampaknya proses terakhir untuk keluar menang. Apakah ada cara untuk menjaga sejarah perintah dari semua instance?
command-line
command-history
persistent-state
200_sukses
sumber
sumber
~/.viminfo
milik Anda. Kesalahan umum adalah bagi orang untuk menjalankansudo vim ...
yang, jika Anda belum menjalankan vim sebagai pengguna Anda sebelumnya, akan dibuat~/.viminfo
sebagai root. Jika itu masalahnya, saya sarankan belajar menggunakansudoedit
atausudo -e
mengedit file istimewa.chown
kembali .minmin saya kembali ke diri saya memperbaikinya. (Tidak yakin bagaimana kepemilikannya berubah menjadi root, karena saya selalu menggunakansudoedit
, tapi oh well.)Jawaban:
Jawaban atas pertanyaan judul Anda adalah apa yang Anda amati. Dari manual pengguna vim
:help 21.3
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.
Contoh memiliki vimrc secara otomatis mengatur ini berdasarkan direktori:
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
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:
dan di terminal kedua:
Atau, jika vim kedua sudah berjalan dan Anda ingin memuat viminfo:
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 bernamaviminfo
. The+=
menunjukkan kita ingin menambahkan ke pilihan, tidak semuanya berubah. Kami menambahkann
opsi yang menentukan nama file untuk viminfo. Segera setelahn
kami memilikiSomePath
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.sumber