Как сказать emacs gdb показывать текущую строку кода в центре буфера?

Используя отладчик в emacs хорошо: можно ступить через код с next команда и emacs будут всегда показывать строку кода, которая в настоящее время выполняется, как это:

  int x;
  int y;
=>int z;

Но к сожалению, если Ваш файл длинен, тот указатель => в конечном счете переместится в нижнюю часть и всегда показывать текущую строку у основания буфера.

Это было бы более хорошо если указатель => всегда оставался посреди буфера (вертикально центрируемый), так, чтобы я видел то, что подходит прямо после текущей строки, прежде чем я скажу next снова, как здесь:

  int y;
=>int z;
  std::cout << z;

Это возможно? Я могу установить это где-нибудь?

3
задан 10.03.2015, 04:53

1 ответ

Нет никакого встроенного механизма для хранения строки центрируемой, однако этот совет добивается цели для меня:

(defadvice gud-display-line (after gud-display-line-centered activate)
  "Center the line in the window"
  (when (and gud-overlay-arrow-position gdb-source-window)
    (with-selected-window gdb-source-window
      ; (marker-buffer gud-overlay-arrow-position)
      (save-restriction
        (goto-line (ad-get-arg 1))
        (recenter)))))
4
ответ дан 08.12.2019, 00:37

Теги

Похожие вопросы