转置 emacs 矩形

转置 emacs 矩形

假设我有这样的文本:

RUN_
RUN_
RUN_
RUN_
RUN_

并想要这个:

RUN_A
RUN_B
RUN_C
RUN_D
RUN_E

我希望能够写入ABCDE并以某种方式“转置”它并将其作为矩形删除。

不用太多的 lisp hacking 可以做到这一点吗?

答案1

(defun insert-column (chars)
  (interactive "sChars to enter: ")
  (insert-rectangle (mapcar 'string (string-to-list chars))))

答案2

标记相关文本。然后按:

Mx 删除尾随空格

将光标放在开头。输入以下内容(在相关位置按回车键)

Mx 映射查询替换正则表达式

$

ABCDE

此过程首先清除每行末尾的空格,然后逐个在每行末尾插入 A、B 等。当然,其他替换模式也是可能的。它不是严格的矩形转置,但用途广泛,通常更接近人们的期望,因为替换不一定在同一列,而是由模式决定。

相关内容