Emacs - saute le paragraphe haut / bas en plaçant le curseur sur la première ligne visuelle

1

Les fonctions de saut de paragraphe vers le haut / bas intégrées à Emacs placent le curseur au - dessus de la première ligne visuelle de chaque paragraphe. Les fonctions sont nettement désactivées lorsqu'il y a plusieurs lignes vides entre les paragraphes. J'ai essayé de créer une macro qui corrige le comportement intégré, mais c'était trop lent pour être utile.

Quelqu'un at-il une fonction de saut de paragraphe haut / bas qu’ils seraient disposés à partager et qui place toujours le curseur sur la première ligne visuelle de chaque paragraphe (même s’il existe plusieurs lignes vides entre les paragraphes)?

liste de loi
la source
Selon votre point de vue, cette question est assez subjective. Personnellement, je ne le pense pas, cependant beaucoup de personnes ici soulèvent des questions subjectives en un tournemain, alors vous voudrez peut-être envisager de le modifier .
Jon
Merci pour la suggestion - je vais supprimer la nature subjective et en faire simplement une demande de fonctionnalité.
lawlist

Réponses:

0

EDIT (8 décembre 2013): Premier brouillon.

EDIT (29 décembre 2013): Diverses améliorations du premier brouillon précédemment publié, notamment la gestion des caractères spéciaux dans latex-mode.

EDIT (3 mars 2014): Création de fonctions séparées pour le modify-syntax-entry.

EDIT (4 janvier 2015): Réécriture majeure sans s'appuyer sur la modification des entrées de syntaxe. Il n'y a plus de distinction selon que la région est active ou non.

(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)))) )
liste de loi
la source