我有几千行分隔数据。不幸的是,我的一些数据被包裹到一个新行。如何搜索所有不包含我的分隔线的行然后与前一行连接,跳到下一行然后继续直到缓冲区结束?
1243 |这是一个人
线
1235 |这适用于一行。
43223 |这条线包裹
出于某种原因。
1243 |这是一条线
1235 |这适用于一行。
43223 |这条线由于某种原因包装。
答案 0 :(得分: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.
可以使用Cx e(kmacro-end-and-call-macro)多次手动调用此宏,也可以将其保存为函数,并按http://www.emacswiki.org/emacs/KeyboardMacrosTricks所述以编程方式调用它。
答案 1 :(得分:4)
尝试M-x query-replace-regexp
,搜索
^\(.\+|.\+\)\n\([^|]\+\)$
替换:
\1\2
HTH
答案 2 :(得分:1)
(global-set-key(kbd“C-c C-j”)'join-line)