Emacs - 将光标放在第一个可视行上,并向上/向下跳转段落

Emacs - 将光标放在第一个可视行上,并向上/向下跳转段落

Emacs 内置的向上/向下跳转段落功能将光标放在多于每个段落的第一行。当段落之间有几行空白时,功能会明显失效。我尝试创建一个宏来修复内置行为,但它太慢了,无法使用。

有没有人有上下跳转段落的功能,愿意分享一下吗总是将光标放在每个段落的第一个可视行上(即使段落之间有几行空白行)?

答案1

编辑(2013 年 12 月 8 日):第一稿。

编辑(2013 年 12 月 29 日):对之前发布的第一稿进行了多项改进,包括但不限于处理中的特殊字符latex-mode

编辑(2014 年 3 月 3 日):为 创建了单独的功能modify-syntax-entry

编辑(2015 年 1 月 4 日):不依赖修改语法条目进行重大重写。不再区分区域是否处于活动状态。

(defun lawlist-forward-paragraph ()
"http://superuser.com/a/685604/206164"
(interactive "^")
  (let ((opoint (point)))
    (skip-chars-forward "\s\t\n\r")
    (re-search-forward "^\n" nil t)
    (skip-chars-forward "\s\t\n\r")
    (when (= opoint (point))
      (goto-char (point-max)))) )

(defun lawlist-backward-paragraph ()
"http://superuser.com/a/685604/206164"
(interactive "^")
  (let ((opoint (point)))
    (skip-chars-backward "\s\t\n\r")
    (re-search-backward "^\n" nil t)
    (skip-chars-forward "\s\t\n\r")
    (when (<= opoint (point))
      (goto-char (point-min)))) )

相关内容