seperti yang dikatakan @flukus dalam komentar ke jawaban sebelumnya, Anda bisa call feedkeys["lh"](ini menggerakkan kursor ke kanan dan kembali ke kiri, yang biasanya tidak membahayakan saat melihat file log)
Jadi, jika Anda menggabungkan sisa jawaban yang Anda miliki, Anda dapat menjalankan dari ex (whithin vim) saat diperlukan:
:set autoread | au CursorHold * checktime | call feedkeys("lh")
(jika Anda ingin melompat (hampir) ke bagian akhir file, cukup gunakan "G", bukan "lh" dengan tombol umpan)
Penjelasan:
- autoread : membaca file ketika diubah dari luar (tetapi tidak berfungsi sendiri, tidak ada timer internal atau semacamnya. Ini hanya akan membaca file ketika vim melakukan tindakan, seperti perintah di ex :!
- CursorHold * checktime : ketika kursor tidak digerakkan oleh pengguna untuk waktu yang ditentukan dalam 'updatetime' (yang defaultnya adalah 4000 milidetik), waktu pemeriksaan dijalankan, yang memeriksa perubahan dari luar file
- panggil feedkeys ("lh") : kursor digerakkan sekali, ke kanan dan ke kiri. dan kemudian tidak ada yang terjadi (... yang berarti, CursorHold dipicu, yang berarti kita memiliki loop )
Selain itu Anda bisa :set syntax=logtalkmewarnai log
Untuk menghentikan pengguliran saat menggunakan call feedkeys("G"), jalankan :set noautoread- sekarang vim akan memberi tahu, bahwa file telah diubah dan tanyakan apakah ada yang ingin membaca perubahan atau tidak)
(Apakah ini memiliki efek samping?)
Edit: Saya melihat satu efek samping: jika seseorang menggunakan "G" sebagai feedkey, itu akan menggulir ke bawah setiap buffer yang saat ini dibuka ?! Jadi, tidak mungkin bekerja di buffer kiri jendela splittet sementara buffer kanan menggulir ke bawah file log secara otomatis