我想向 Emacs 添加一个函数 (para2lines),通过它我可以将当前段落拆分成句子,并在单独的缓冲区中逐行打印。以下是 Racket/Scheme 中的代码:
(define (p2l paraString)
(define lst (string-split paraString ". "))
(for ((i lst))
(displayln i)))
测试:
(p2l "This is a test. For checking only. Only three lines.")
输出:
This is a test.
For checking only.
Only three lines.
在 Emacs Lisp 中,我可以管理以下代码:
(defun pl (ss)
(interactive)
(let ((lst (split-string (ss))))
(while lst
(print (pop lst)))))
但我不知道如何从当前位置的段落中获取文本。我该如何更正此功能?
编辑:基本上,我想将其作为单独的行阅读,但想将其保存为段落。
最佳答案
这是一个可能对您有所帮助的示例。它会将您转换为当前段落(即光标所在的位置),而不是新的缓冲区。如果需要,您可以修改它以将字符串传递给您的函数。
(defun p2l ()
"Format current paragraph into single lines."
(interactive "*")
(save-excursion
(forward-paragraph)
(let ((foo (point)))
(backward-paragraph)
(replace-regexp "\n" " " nil (1+ (point)) foo)
(backward-paragraph)
(replace-regexp "\\. ?" ".\n" nil (point) foo))))
关于emacs - Emacs 中当前段落的分割线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43352006/