Зацикливайтесь на мягких визуальных линиях - PullRequest
0 голосов
/ 07 мая 2018

У меня есть функция, которую я хочу применить в цикле над визуальными строками, а не только в жестко обернутых строках. Как я могу перебрать визуальные линии?

1 Ответ

0 голосов
/ 08 мая 2018

Я не уверен, что это лучший способ, но вы можете использовать next-line с ненулевым line-move-visual, beginning-of-visual-line и end-of-visual-line.

Пример:

(defun foo (&optional start end)
  (interactive)
  (let ((start (or start (point-min)))
        (end (or end (point-max)))
        b e)
    (goto-char start)
    (while (<= (point) end)
      (beginning-of-visual-line)
      (setq b (point))
      (save-excursion 
        (end-of-visual-line)
        (setq e (point)))
      (message "%d %d" b e)
      (let ((line-move-visual t))
        (next-line)))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...