Bir sonraki grep'te grep'i yeniden gözden geçirebilir veya pencereyi nasıl derleyebilirim?

Grep veya derleme penceresinde sonraki hata </​​code> 'da,

(setq next-error-recenter 35)

eşleşmeyi görüntüleyen pencerenin, bu stackoverflow sorusu .

Aynı şeyi grep veya derleme penceresinde kendisi nasıl yapabilirim? Genellikle grep çıktısı alıyorum veya pencerenin alt kısmında bulunan çıktıları derledim ve zamanımın tamamını grep çıktısı veya hataları derlerken geçirdiğim günlerde pencereler arasında ileri geri geçiş önemli bir ek yük ekler.

5
derleme-goto-locus 'a bakmak ve uygun olan yerlerde recenter komutunu koymak istediğinizde - yorum ile başlayan kısımda: Derleme arabelleği pencere seçildi. . . , Pencerenin farklı bir yerinde yeniden açabilirsiniz - recenter için doküman dizgisine bakın.
katma yazar lawlist, kaynak

1 cevap

Derleme/grep arabelleğinde point konumunun tam olarak kaydedilmesi için böyle bir geçici çözüm kullanıyorum:

(defun eab/compile-goto-error ()
  (interactive)
  (let ((istc? truncate-lines))
    (toggle-truncate-lines t)
    (let ((buf (current-buffer))
          (line (- (count-lines (window-start) (point))
                   (if (eq (point) (point-at-bol)) 0 1)))
          (point (point)))
      (compile-goto-error)
      (run-with-timer 0.01 nil `(lambda ()
                                 (let ((cb (current-buffer)))
                                       (pop-to-buffer ,buf)
                                       (recenter ,line)
                                       (goto-char ,point)
                                       (toggle-truncate-lines ,istc?)
                                       (pop-to-buffer cb)))))))

derleme/grep arabelleğinde point 'in basit merkezlemesini istiyorsanız, şunu kullanın:

(defun eab/next-error ()
  (interactive)
  (let ((buf (current-buffer)))
    (next-error)
    (run-with-timer 0.01 nil `(lambda ()
                             (let ((cb (current-buffer)))
                               (pop-to-buffer ,buf)
                               (recenter)
                               (pop-to-buffer cb))))))

İlk örnekte derleme-goto-error yerine next-error kullanabilirsiniz.

Post. Emacs 25.1 sıfır olmayan süre için gereklidir.

1
katma