在 Emacs 上滚动非常长的文件(1M+ 行)

在 Emacs 上滚动非常长的文件(1M+ 行)

我想知道除了基本的导航命令之外是否:

C-p : Jump backwards one line.
C-n : Jump forward one line.
C-v : Jump forward one full screen.
M-v : Jump backwards one full screen.
M-a : Go to the previous paragraph beginnings.
M-e : Go to the next paragraph end.
M-g g: Jump to a specific line

emacs 提供任何命令来轻松滚动数千或数百万行。

更具体地说,我正在寻找一个可以用来向前(或向后)移动1%文件的命令(也许是一个可以与文件组合C-u并可用于滚动任意%文件的命令?)

답변1

命令beginning-of-buffer(C-homeM-<) 和end-of-buffer(C-endM->) 采用数字参数。如果参数是,然后命令带你/10 的方式。 (经过一些舍入:这些命令将您带到行的开头。)例如,M-1 M->转到缓冲区中的 90% 位置,即百万行缓冲区中的第 900000 行左右。

为了更精确的控制,您可以滚动到末尾,记下行号,然后使用M-g g( goto-line) 到达特定行号,例如ESC 9 0 0 0 ESC g g转到第 9000 行。

답변2

一些想法:

一种快速导航方法是使用增量搜索 ( C-s) 及其变体。

我想知道occur在如此大的文件的匹配之间导航是否有用。它显示一个单独的窗口,其中包含匹配正则表达式的所有匹配项,您可以使用 和 进行M-g n导航M-g p

为了跳转到缓冲区的百分比,http://www.emacswiki.org/emacs/basic-edit-toolkit.el有一个函数:

(defun goto-percent (percent)
  "Goto PERCENT of buffer."
  (interactive "nGoto percent: ")
  (goto-char (/ (* percent (point-max)) 100)))

forward-paragraphbackward-paragraph可能对快速导航有用,具体取决于文件结构(绑定到M-}M-{)。

답변3

C-u PERCENT M-x View-goto-percent

将光标移动PERCENT到缓冲区的路径。

관련 정보