emacs - Emacs 中当前段落的分割线

标签 emacs split lisp

我想向 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/

相关文章:

visual-studio - 如何使用 Emacs 仿真扩展将文本从另一个应用程序粘贴到 Visual Studio?

c++ - 使用 sscanf() 分割空白字符串

lisp - DrRacket 中的简单嵌套评估

emacs - eval/从文件加载时如何使emacs默认切换到*scheme*?

python - 在 Emacs 中使用 Python 的 Unicode 转换问题

bash - 语法错误 : unexpected end of file when editing code within here documents with emacs. 使用 nano 工作正常

Python:如何通过一些字符串连接将每个字符串拆分为新行

regex - Perl 使用定界符前缀拆分正则表达式

lisp - Common Lisp 中的 "Invalid EXCL::PREDICATE argument"错误

lisp - 构建大型 Lisp 应用程序