Kuyruk -f vim ile renkli çıktı göstermek nasıl?


9

Bu soruda Gilles cevapladı

Yine bir başka olasılık, tail -fbir Emacs kabuk tamponunda çalışmak ve Emacs'in sözdizimi renklendirme yeteneklerini kullanmaktır.

Ben vim kullanıcısı olduğum için bunu emacs ile değil vim ile yapmak istiyorum . Does vim bu özellik vardır?


2
Vim, Emacs'ın aksine sadece bir metin editörüdür ... Bununla birlikte, Vim için kullanılabilecek bir kuyruk eklentisi vardır .
jasonwryan

Orada da vimpager eklenti o hile yapabilir
BSD

1
bir metin editörü olmak zorunda mı? Metni renklendirmeniz gerekiyorsa, Clide
golimar

Ayrıca, vim için TailBundle var .
jofel

Burada da benzer bir soru var . Çözümler çok kuyruğun kullanımını ve nasıl yapılandırılacağını açıklar , belki de yararlı olabilir.
logoff

Yanıtlar:


2

Tamponları gerçek zamanlı olarak Python'da veya Vim'in desteklediği ve iş parçacıklarının desteklediği başka bir komut dosyasında değiştirmek için çok iş parçacıklı bir eklenti yazabilirsiniz.

Ama bu sadece terminalde bildiğim kadarıyla çalışıyor. En azından X11'de, GUI başka bir iş parçacığı tarafından değiştirilirse GUI sürümü çökecektir.

Başka programları kabul ederseniz, grc ve ccze akışları renklendirebilir.


0

Kısa ve çok fazla hack veya harici komut dosyası olmadan seviyorum. Gerektiğinde bu oneliner'ı ex (whimin vim) 'den çalıştırabilirsiniz (veya günlük dosyaları açıldığında her komutu vimrc'ye koyabilirsiniz.)

:set autoread | au CursorHold * checktime | call feedkeys("lh")

ve ayrıca :set syntax=logtalkgünlüğü renklendirebilirsiniz

(dosyanın sonuna kadar (neredeyse) atlamak istiyorsanız, feedkeys ile "lh" yerine "G" kullanın)

Açıklama:

  • autoread: dışarıdan değiştiğinde dosyayı okur (ancak kendi başına çalışmaz, dahili bir zamanlayıcı veya bunun gibi bir şey yoktur. Dosyayı yalnızca vim bir komut gibi, :!
  • CursorHold * checktime: imleç kullanıcı tarafından belirtilen süre boyunca hareket ettirilmediğinde updatetime(varsayılan olarak 4000 milisaniyedir) checktimeyürütülür ve dosyanın dışından gelen değişiklikleri kontrol eder
  • call feedkeys("lh"): imleç bir kez, sağa ve sola hareket ettirilir. ve sonra hiçbir şey olmuyor (... yani CursorHoldbu tetikleniyor, yani bir döngümüz var )

Kullanırken kaydırmayı durdurmak için call feedkeys("G"), yürüt :set noautoread- şimdi vim dosyanın değiştiğini söyleyecek ve değişikliklerin okunup okunmayacağını soracaktır)

Ben vim logfiles (kuyruk -f yerine), örneğin screen / tmux olmadan bir ssh oturumunda çalışırken fikrini seviyorum. Ek olarak, gerekirse doğrudan günlük dosyasından kopyalayabilir veya çıktıyı doğrudan kaydedebilir veya ... vim ile ne yapabilirsiniz? :)

* bu cevaptan ( PhanHaiQuang'ın cevabına ve flukus tarafından yapılan bir yoruma atıfta bulunarak )

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.