Майлылықты қалай қалпына келтіруге болады немесе келесі қате туралы терезені құрастыруға болады

Grep немесе компиляция терезесінде келесі қате туралы, мен ұқсас нәрсені пайдалана аламын

(setq next-error-recenter 35)

this stackoverflow question .

Жасыру немесе компиляция терезесінде бірдей нәрсені қалай жасауға болады? Мен көбінесе grep шығуын немесе терезенің төменгі жағында шығарылатын өнімді компиляциялауды жасаймын және барлық уақытты жұмсап, жұмысты аяқтайтын немесе қателерді компиляциялайтын күндерді өткізгенде, терезелер арасында артқы және артқа ауысып, айтарлықтай үстеме шығады.

5
compilation-goto-locus -ге қарап, қажет болса, recenter командасына қойыңыз - түсініктемемен басталатын бөлімде: Егер компиляция буфері терезе таңдалды. . . , Терезенің әртүрлі жерінде қайта шақыруға болады - recenter үшін doc-жолын қараңыз.
қосылды автор lawlist, көзі

1 жауаптар

compilation/grep буферінде point позициясын дәл сақтау үшін осындай шешімді қолданамын:

(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)))))))

compilation/grep буферінде point деген қарапайым орталықтандыру қажет болса, мына әрекеттерді қолданыңыз:

(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))))))

Бірінші мысалда compile-goto-error орнына келесі қате қолдануға болады.

Жаңарту. Emacs 25.1 нөлдік емес уақыт кезеңі үшін қажет.

1
қосылды