Saya memiliki file konfigurasi yang saya tetap buka di vim, tapi itu kadang-kadang berubah pada disk, tanpa perubahan ini tercermin pada terminal. Bisakah saya menyegarkan konten di layar tanpa menutup dan membuka kembali file? Jika ya, bagaimana caranya?
362
Jawaban:
Anda dapat menggunakan
:edit
perintah, tanpa menentukan nama file, untuk memuat ulang file saat ini. Jika Anda telah membuat modifikasi pada file, Anda dapat menggunakan:edit!
untuk memaksa memuat ulang file saat ini (Anda akan kehilangan modifikasi Anda).Perintah
:edit
dapat disingkat dengan:e
. Suntingan paksa dapat dilakukan dengan:e!
sumber
:e!
.:edit
dan:edit!
Anda dapat menggunakan masing:e
-:e!
masing.u
melakukannya:e!
.:bufdo e
Selain untuk menyegarkan file secara manual
:edit
, Anda dapat memasukkannya ke dalam~/.vimrc
untuk membuat Vim secara otomatis me-refresh file apa pun yang belum diedit oleh Vim. Lihat juga
:checktime
.sumber
git pull
sadar Anda bisa kehilangan perubahan yang belum disimpan di layar secara tidak sengaja.gvim
, atau menjalankan perintah eksternal.:checktime
autoread
dapat dipicu secara otomatis X detik setelah kursor berhenti bergerak, lihat jawaban ini .TL; DR
Lewati ke
Wrap-up
tajuk untukvimrc
ditambahkan baris agar kehidupan Anda lebih baik.Secara manual
Lari
:checktime
Secara otomatis
Untuk melakukan perubahan secara otomatis, tambahkan
vimrc
:set autoread
Jawaban ini menambahkan peringatan:
Baca terus untuk solusinya.
Pemicu ketika kursor berhenti bergerak
Tambahkan ke Anda
vimrc
:Secara default, CursorHold dipicu setelah kursor masih diam selama 4 detik, dan dapat dikonfigurasi melalui waktu pembaruan .
Pemicu pada perubahan buffer atau fokus terminal
Tambahkan yang berikut ke
vimrc
pemicu Andaautoread
saat mengganti buffer saat berada di dalam vim:Menangkap fokus jendela terminal di dalam vim polos
Agar
FocusGained
(lihat di atas) berfungsi di plain vim, di dalam terminal emulator (Xterm, tmux, dll) instal plugin: vim-tmux-focus-eventsPada versi tmux> 1.9, Anda harus menambahkan
.tmux.conf
:Bungkus
Pemberitahuan ketika
autoread
pemicu juga dimungkinkan .Inilah
vimrc
baris saya untuk mengimplementasikan semua hal di atas:Terima kasih kepada ErichBSchulz karena mengarahkan saya ke arah yang benar
au CursorHold
.sumber