通过Emacs,如何将两行join一行?

我是Emacs的新手。 我search了这个,但没有好的答案。 其中之一是Ctrl-n Ctrl-a Backspace这是有效的,但是很愚蠢。 有没有简单的方法将一行代码连接成一行代码?

其实我现在可以用Esc-q来自动填写一个段落,但是如何在没有UNDO的情况下恢复呢?

您可以为此定义一个新的命令,在使用Esc-q命令之前临时调整填充宽度:

;; -- define a new command to join multiple lines together -- (defun join-lines () (interactive) (setq fill-column 100000) (fill-paragraph nil) (setq fill-column 78) ) 

显然这只适用于,如果你的段落less于100000个字符。

将点放在需要join和呼叫的线路组的最后一行的任何位置

 M-^ 

不断重复,直到所有的行被合并。

注意:在所有现在连接的线之间留下一个空格。

Mx join-line将连接两条线。 把它绑定到一个方便的按键。

只需要replace换行符。

与M- ^结合的多个游标将所有选中的行折叠成一个,并删除所有无关的空白。

例如要select整个缓冲区,调用多个游标模式,折叠成一行,然后禁用多个游标模式:

 Cx h Mx mc/edit-lines M-^ Cg 

我喜欢这种方式崇高的文本join与命令J行,所以我这样做:

 (defun join-lines (arg) (interactive "p") (end-of-line) (delete-char 1) (delete-horizontal-space) (insert " ")) 

我使用以下函数并将其绑定到“M-J”。

 (defun concat-lines () (interactive) (next-line) (join-line) (delete-horizontal-space)) 

如果您想保持光标位置,则可以使用保存偏移 。

Emacs传统的名字是“fill”。 是的,你可以用M-^连接行 – 这很方便 – 但更一般的情况是你想连接n行。 为此,请参阅fill*命令,例如fill-regionfill-paragraph等。

看到这个更多的信息select的东西,然后可以填补。

“如果没有UNDO,我怎么能恢复呢?”:

 (defun toggle-fill-paragraph () ;; Based on http://xahlee.org/emacs/modernization_fill-paragraph.html "Fill or unfill the current paragraph, depending upon the current line length. When there is a text selection, act on the region. See `fill-paragraph' and `fill-region'." (interactive) ;; We set a property 'currently-filled-p on this command's symbol ;; (ie on 'toggle-fill-paragraph), thus avoiding the need to ;; create a variable for remembering the current fill state. (save-excursion (let* ((deactivate-mark nil) (line-length (- (line-end-position) (line-beginning-position))) (currently-filled (if (eq last-command this-command) (get this-command 'currently-filled-p) (< line-length fill-column))) (fill-column (if currently-filled most-positive-fixnum fill-column))) (if (region-active-p) (fill-region (region-beginning) (region-end)) (fill-paragraph)) (put this-command 'currently-filled-p (not currently-filled))))) (global-set-key (kbd "Mq") 'toggle-fill-paragraph)