假设我有这样的文本:
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 等。当然,其他替换模式也是可能的。它不是严格的矩形转置,但用途广泛,通常更接近人们的期望,因为替换不一定在同一列,而是由模式决定。