如何在Emacs中从选定区域删除所有换行符?

55
如何在Emacs中从选定区域删除所有换行符?
4个回答

93
  1. M-x replace-string
  2. C-q C-j
  3. RET
  4. RET

技巧在于使用C-q引用C-j,其他情况下替换换行符与替换其他字符一样简单。


9
如果你在处理文本,用空格代替可能更加实用。 - lex82
4
unfill-region 可以做到这个吗? - incandescentman
1
Emacs中是否提供了unfill-region功能,还是需要自己添加? - bph

15

使用我认为是标准的按键绑定,在Windows上:

选择区域

Shift + Alt + %

Ctrl + Q,Ctrl + J

回车

回车

!

换句话说,查询替换区域,使用Ctrl + Q获取扩展字符,使用Ctrl + J插入新行,将它们全部替换为空。


13
如果您想创建一个函数来执行此操作(并将其绑定到F8),可以尝试以下方法:
(defun remove-newlines-in-region ()
  "Removes all newlines in the region."
  (interactive)
  (save-restriction
    (narrow-to-region (point) (mark))
    (goto-char (point-min))
    (while (search-forward "\n" nil t) (replace-match "" nil t))))

(global-set-key [f8] 'remove-newlines-in-region)

That's based on an example I that I found here.


-2

你也可以考虑使用老牌的 delete-blank-lines,通常绑定到 C-x C-o


4
除非所有的换行符都是空行,否则这样做不会奏效。 - Brian Z

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接