1

Функции перехода по параграфу вверх / вниз, встроенные в Emacs, помещают курсор над первой визуальной строкой каждого абзаца. Функции значительно отключены, когда между абзацами есть несколько пустых строк. Я попытался создать макрос, который исправляет встроенное поведение, но он был слишком медленным, чтобы быть полезным.

Есть ли у кого-нибудь функция перехода по параграфу вверх / вниз, которой он хотел бы поделиться, которая всегда помещает курсор на первую визуальную строку каждого абзаца (даже если между абзацами есть несколько пустых строк)?

1 ответ1

0

РЕДАКТИРОВАТЬ (8 декабря 2013 г.): первый черновик.

РЕДАКТИРОВАТЬ (29 декабря 2013 г.): Различные улучшения первого ранее опубликованного черновика, включая, помимо прочего, работу со специальными символами в latex-mode .

РЕДАКТИРОВАТЬ (3 марта 2014 г.): Созданы отдельные функции для modify-syntax-entry .

РЕДАКТИРОВАТЬ (4 января 2015 г.): Основная перезапись без изменения синтаксических записей. Больше нет разницы, активен ли регион.

(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)))) )

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .