Does not next-error
derleme-hatalar tampon ilerleyin, böylece pencerenin ilk satırı olarak geçerli hata gösterileri mı?
Değilse, en azından imleci geçerli hata satırına koymaz mı? Görünüyorsa ve imleç sizin için yeterince görünmüyorsa hl-line-mode
, geçerli satırı vurgulamak için kullanmayı düşünün . Veya crosshairs
geçerli satırı ve geçerli sütunu vurgulamak için kitaplık kullanmayı düşünün .
Yorumunuzdan sonra güncelleyin
next-error
Arabelleğe çağırdığını sanıyordum *compilation*
. Bunu yaparsanız, açıkladığım gibi çizgi en üste kaydırılır.
Eğer yürütmesini Ama eğer next-error
tampon dışında *compilation*
kullanmak gerekir sonra next-error-hook
, hiç tampon içerisinde*compilation*
, sizin gibi ne olursa olsun bir şekilde geçerli satırı veya saçak ya da her türlü, vurgulayın.
İşte hızlı ve kirli bir örnek:
(defun foo ()
"..."
(with-current-buffer next-error-last-buffer
(hl-line-mode 1)))
(add-hook 'next-error-hook 'foo)
(Elbette, eğer gerçekten sadece açmak gerek hl-line-mode
yukarıda gösterilen overkill gibi yapmak. O tamponunda bir kez, ancak zarar vermez. Sen sadece genel düşünebilir foo
için grep-mode-hook
ya compilation-mode-hook
. Ama bu kancalar çağrıldığında orada hayır next-error-last-buffer
.)
Not:
Kaynak arabellekteki (derleme arabellekte değil) isabetin gösterilme yollarını kontrol eden iki kullanıcı seçeneği vardır : next-error-highlight
ve next-error-highlight-no-select
. Aynı olasılıkları sunarlar, ancak farklı komutlar tarafından kullanılırlar. Olasılıklar arasında bir saçak oku kullanılması veya belirli bir süre için maçın vurgulanması yer alır.
Ancak tampondaki mevcut isabetin göstergesini kontrol eden böyle bir seçenek yoktur *compilation*
. Bu nedenle Emacs, kaynak arabelleği için iki seçenek (muhtemelen yeterli olacaktır) sunar, ancak derleme arabelleği için seçenek yoktur.
Sen tampon (grep dahil) derleme için benzer bir seçeneği almak için, bir geliştirme isteğini doldurmak düşünebilirsiniz: M-x report-emacs-bug
. Vurgulamayı gerçekleştirmek için kendi işlevinizle bir kanca kullanmak tamamdır, ancak gerekli olmamalıdır.
Ve sadece saçak göstergesini değiştirmek istiyorsanız, bunu yapabilirsiniz (yerine istediğiniz saçak bitmapini kullanın filled-rectangle
- önceden tanımlanmış olanların bir listesi için bkz. (Elisp) Saçak Bitmapleri ):
(defun bar ()
(with-current-buffer next-error-last-buffer
(unless (eq 'filled-rectangle (cdr (assq 'overlay-arrow fringe-indicator-alist)))
(setq fringe-indicator-alist
(cons '(overlay-arrow . filled-rectangle) fringe-indicator-alist)))))
(add-hook 'next-error-hook 'bar)
Güncelleme # 2:
Sadece sol saçak göstermeyi kapatırsanız, başlangıçta tarif ettiğim davranışı göreceğinizi keşfettim: mevcut hatayı en üste koymak için pencere kaydırılır. Yani bu başka bir olasılık. (Saçak göstermediğim için kurulumumda gördüğüm davranış.)
Bu davranışta, sadece bildirdiğim bir hata var ( # 20829 ). Önemli olan (şu anda, hata düzeltilene kadar), C-x `
( next-error
) yaptığınızda sol saçağın seçilen pencerede görünüp görünmediğidir . Derleme arabelleğini gösteren pencerenin sol saçak göstermemesi (şu anda) yeterli değildir.