Saya suka pendek dan tanpa banyak peretasan atau skrip eksternal. Anda dapat menjalankan oneliner ini dari ex (whithin vim) saat dibutuhkan (atau letakkan setiap perintah di vimrc, untuk saat file log dibuka.)
:set autoread | au CursorHold * checktime | call feedkeys("lh")
dan juga Anda bisa :set syntax=logtalk
mewarnai log
(jika Anda ingin melompat (hampir) ke akhir file, cukup gunakan "G" dan bukan "lh" dengan feedkey)
Penjelasan:
autoread
: membaca file ketika diubah dari luar (tetapi tidak bekerja dengan sendirinya, tidak ada timer internal atau sesuatu seperti itu. Hanya akan membaca file ketika vim melakukan suatu tindakan, seperti perintah dalam ex :!
CursorHold * checktime
: ketika kursor tidak dipindahkan oleh pengguna untuk waktu yang ditentukan dalam updatetime
(yang merupakan 4000 milidetik secara default) checktime
dieksekusi, yang memeriksa perubahan dari luar file
call feedkeys("lh")
: kursor dipindahkan satu kali, kanan dan kiri kiri. dan kemudian tidak ada yang terjadi (... yang berarti, yang CursorHold
dipicu, yang berarti kita memiliki perulangan )
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)
Saya suka ide untuk menonton file log dalam vim (bukan tail -f), misalnya ketika Anda bekerja dalam sesi ssh tanpa layar / tmux. Selain itu Anda dapat menyalin langsung dari logfile, jika perlu, atau menyimpan output secara langsung atau ... apa pun yang dapat Anda lakukan dengan vim :)
* dari jawaban ini (merujuk pada jawaban oleh PhanHaiQuang dan komentar oleh flukus )