Emacs宏加入线?

6 emacs

我有几千行分隔数据.不幸的是,我的一些数据被包裹到一个新行.如何搜索不包含我的分隔符的所有行然后与前一行连接,跳到下一行然后继续直到缓冲区结束?

缓冲之前

1243 |这是
一行
1235 |这适合一行.
43223 |这条线
由于某种原因包装.

缓冲后

1243 |这是一行
1235 |这适合一行.
43223 |这条线由于某种原因包装.

jlf*_*jlf 5

这对于键盘宏来说是一个很好的工作.尝试这样的事情:

C-x (
M-x isearch-forward-regexp RET
^[^|]*$ RET
M-^
C-x )

where
  C-x (                            begins recording a keyboard macro, which consists of
  M-x isearch-forward-regexp RET   searching forward using a regular expression
  ^[^|]*$                          representing a line containing no | characters, then
  M-^                              joining the current line to the previous line and
  C-x )                            ending the keyboard macro definition.
Run Code Online (Sandbox Code Playgroud)

可以使用Cx e(kmacro-end-and-call-macro)多次手动调用此宏,也可以将其保存为函数并按照http://www.emacswiki.org/emacs/中的描述以编程方式调用它. KeyboardMacrosTricks.