Как я могу получить 'next-error', чтобы скопировать строку, вызывающую ошибку, в kill-ring? - PullRequest
0 голосов
/ 16 августа 2011

Я пытался запустить

(list (next-error) 
      (kill-ring-save (line-beginning-position) (line-end-position)))

сразу после M-x компиляции

Но она выталкивает текущую строку в список уничтожений, а не в строку, где была обнаружена ошибка ...

Если это так, как заставить emacs дождаться завершения (next-error), прежде чем продолжить выполнение следующей команды?

1 Ответ

0 голосов
/ 16 августа 2011

Этот небольшой совет скопирует строку, указанную в ошибке, в список уничтожений:

(defadvice compilation-goto-locus (after next-error-copy-offending-line activate)
  (kill-ring-save (line-beginning-position) (line-end-position)))

Если вы решили, что хотите получить сообщение об ошибке, вы можете использовать это:

(progn
  (next-error)
  (with-current-buffer next-error-last-buffer
    (kill-ring-save (line-beginning-position) (line-end-position))))
...