題 如何告訴emacs gdb在緩衝區中心顯示當前代碼行?


在emacs中使用調試器很不錯:您可以使用 next 命令和emacs將始終顯示當前執行的代碼行,如下所示:

  int x;
  int y;
=>int z;

但不幸的是,如果你的文件很長,那個指針 => 最終將移動到底部並始終顯示緩衝區底部的當前行。

如果指針會更好 => 總是停留在緩衝區的中間(垂直居中),以便我可以看到當前行之後出現的情況,然後我說 next 再次,像這裡:

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

那可能嗎?我可以在某處設置嗎?


3
2018-03-10 02:38


起源




答案:


沒有內置機制來保持線條居中,但是這個建議對我有用:

(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
2018-03-10 04:24



對我不起作用。當我在gdb中說'next'時,emacs給出了一個 error in process filter: Symbol's value as variable is void: gud-overlay-arrow-position - dehmann
fyi,適用於GNU Emacs 24.3.1(x86_64-unknown-linux-gnu,GTK +版本2.18.9)。謝謝! - simpleuser