如何在 EMACS 中给定文本的每一行后添加两个空格?
How can I add two spaces after each line on a given text in EMACS?
寻求如何在 EMACS 中给定文本缓冲区的每一行后添加两个空格。
这是一种通过 org-mode 在 EMACS 导出时添加换行符的方法。
首先,确保您(或您安装的某些软件包)没有在挂钩上添加 delete-trailing-whitespace
。默认情况下它不在任何挂钩上,但是将它添加到 before-save-hook
是相当常见的。
又快又脏:
C-M-< C-M-% $ RET SPACE SPACE RET !
。
- 这将转到缓冲区的开头 (
C-M-<
),
- 开始
query-replace-regexp
(C-M-%
),
- 用两个 space 和
替换行尾 ($
)
- 将其应用于每场比赛 (
!
)。
以上,RET
表示按下return键,SPACE
表示按下space键。将 $
替换为 [^ ][^ ]$
并将 SPACE SPACE
替换为 \& SPACE SPACE
以仅适用于以少于两个 space 结尾的行(这也会使操作幂等) . \&
表示整个匹配的字符串(在本例中为最后两个字符)。
函数:
(defun ensure-trailing-spaces ()
"Ensure there are two spaces at the end of every line."
(interactive "*")
(save-excursion
(goto-char (point-min))
(while (not (eobp))
(end-of-line)
(unless (looking-back " $")
(insert " "))
(forward-line))))
请注意,这无条件地在每一行的末尾插入两个 space,即使已经有一个 space,因此会有两个或三个 space在每一行的末尾。
寻求如何在 EMACS 中给定文本缓冲区的每一行后添加两个空格。
这是一种通过 org-mode 在 EMACS 导出时添加换行符的方法。
首先,确保您(或您安装的某些软件包)没有在挂钩上添加 delete-trailing-whitespace
。默认情况下它不在任何挂钩上,但是将它添加到 before-save-hook
是相当常见的。
又快又脏:
C-M-< C-M-% $ RET SPACE SPACE RET !
。
- 这将转到缓冲区的开头 (
C-M-<
), - 开始
query-replace-regexp
(C-M-%
), - 用两个 space 和 替换行尾 (
- 将其应用于每场比赛 (
!
)。
$
)
以上,RET
表示按下return键,SPACE
表示按下space键。将 $
替换为 [^ ][^ ]$
并将 SPACE SPACE
替换为 \& SPACE SPACE
以仅适用于以少于两个 space 结尾的行(这也会使操作幂等) . \&
表示整个匹配的字符串(在本例中为最后两个字符)。
函数:
(defun ensure-trailing-spaces ()
"Ensure there are two spaces at the end of every line."
(interactive "*")
(save-excursion
(goto-char (point-min))
(while (not (eobp))
(end-of-line)
(unless (looking-back " $")
(insert " "))
(forward-line))))
请注意,这无条件地在每一行的末尾插入两个 space,即使已经有一个 space,因此会有两个或三个 space在每一行的末尾。