Dalam pertanyaan ini , Gilles menjawab
Namun kemungkinan lain adalah untuk menjalankan
tail -f
dalam buffer shell Emacs dan menggunakan kemampuan pewarnaan sintaks Emacs.
Karena saya pengguna vim, saya ingin melakukan ini dengan vim , bukan emacs .
Apakah vim memiliki fitur ini?
Jawaban:
Anda dapat menulis plugin multithread untuk mengubah buffer secara real time dalam Python atau skrip lain yang didukung dan memiliki utas Vim.
Tapi ini hanya berfungsi di terminal sejauh yang saya tahu. Setidaknya di X11, versi GUI akan mogok jika GUI dimodifikasi oleh utas lainnya.
Jika Anda menerima program lain, grc dan ccze dapat mewarnai aliran.
sumber
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.)
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 dalamupdatetime
(yang merupakan 4000 milidetik secara default)checktime
dieksekusi, yang memeriksa perubahan dari luar filecall feedkeys("lh")
: kursor dipindahkan satu kali, kanan dan kiri kiri. dan kemudian tidak ada yang terjadi (... yang berarti, yangCursorHold
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 )
sumber