如何在Emacs中只显示光标前或光标所在行的内容?

5
我是一名高中计算机科学老师,想使用emacs向学生展示程序。我希望能够逐行展示程序,即使是短程序,也不要在emacs缓冲区中一开始就显示整个程序。
因此,我希望emacs隐藏当前行以下的所有行,并在将光标移动到该行时逐行显示每行。
2个回答

6

试试这个:

(defun narrow-next-line ()
  (interactive)
  (widen)
  (call-interactively 'move-end-of-line)
  (forward-char)
  (call-interactively 'move-end-of-line)
  (narrow-to-region 1 (point)))

(global-set-key (kbd "C-x n i") 'narrow-next-line)

为此命令选择您自己的热键。另请参阅http://www.gnu.org/software/emacs/manual/html_node/emacs/Narrowing.html


3

受到你的问题的启发,我将库reveal-next.el添加到EmacsWiki。我认为它可以实现你想要的功能。


将以下内容放入我的init.el文件中,我还能够添加当前行的高亮显示。谢谢。(load-file“〜/ .emacs.d / reveal-next.el”)(defun hide-following-code()(交互式) (hl-line-mode t) (reveal-next-mode t)) (global-set-key(kbd“C-<down>”)'hide-following-code) - rainerpm
那只是突出显示最后一行,对吧?顺便问一下,你有没有注意到如果将reveal-next-char-level设置为t,那么你就可以隐藏/显示比一行更小或更大的内容。例如,你可以使用C-M-f前进一个S表达式,然后将其显示出来等等。无论如何,希望这能有所帮助。 - Drew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接