如何使用 emacs string-insert-rectangle 操作将数字向量添加到一系列行中?例如,我的 emacs 缓冲区中有一堆文本条目的缩短版本:
element01 8 111111111011010000100000001100101000001111101111011111111000
element01 8 111101101010101001111111111000111110111111011110100101010111
element01 8 111111011001001110111010111111100111010110101011111010110011
element01 8 111111111111111111111111010111101101011101011111000001100000
element01 8 111100111111011111100110110000001011110101000011111011111101
element01 8 111001001011000000011100000101001001100101101011101101011011
element01 8 111011111101101111111111111101101010111110111011111101011011
element01 8 101101111101101111000110111101111010111011101111001101001011
element02 6 110101110101100101100101000111010101110111001001101111111011
element02 6 111001011001001011101110111100111101101011111111111011111101
element02 6 101111100111010111111010010101111101111111101101111011111011
element02 6 111101111111111100111110110111101011111001001101101100111111
element02 6 111111010111101111010011110111001100001000101010111111111101
element02 6 111110111001101111111100111011110000011011100100100111111010
element03 13 110011011111111111101011100111111110011111110100111010011111
element03 13 100011101000111110101101000000000001110110110011110110111101
element03 13 101100011100011111110111110110101101111111110110110100101111
element03 13 111111011110101110101011010111110000010111111011100100011111
element03 13 011100110110110111100101110101111110111100101110010111110011
element03 13 100111111111100100111110110110111111111101011101110110110111
element03 13 101111111111110101110110111011111110111101110110111111111111
element03 13 111110010111110110101111110110111111111110101111111101110011
element03 13 100111111101110110110110111110111010111110110011111111110111
element03 13 110100110111110110110100111010110100110110110110110101111111
element03 13 011111011010111101101001011100111110010111111011111101011010
element03 13 011101111110010000111000000101101010111110100010110110110110
element03 13 110100110110110010101010100011100011000000110011011100110100
element03 13 010101101010110010111100101001001010111001100111110000011011
[...]
我想在第二列和第三列之间添加一列,如下所示:
element01 8 id1 111111111011010000100000001100101000001111101111011111111000
element01 8 id2 111101101010101001111111111000111110111111011110100101010111
element01 8 id3 111111011001001110111010111111100111010110101011111010110011
element01 8 id4 111111111111111111111111010111101101011101011111000001100000
element01 8 id5 111100111111011111100110110000001011110101000011111011111101
element01 8 id6 111001001011000000011100000101001001100101101011101101011011
element01 8 id7 111011111101101111111111111101101010111110111011111101011011
element01 8 id8 101101111101101111000110111101111010111011101111001101001011
element02 6 id9 110101110101100101100101000111010101110111001001101111111011
element02 6 id10 111001011001001011101110111100111101101011111111111011111101
element02 6 id11 101111100111010111111010010101111101111111101101111011111011
element02 6 id12 111101111111111100111110110111101011111001001101101100111111
element02 6 id13 111111010111101111010011110111001100001000101010111111111101
element02 6 id14 111110111001101111111100111011110000011011100100100111111010
element03 13 id15 110011011111111111101011100111111110011111110100111010011111
element03 13 id16 100011101000111110101101000000000001110110110011110110111101
element03 13 id17 101100011100011111110111110110101101111111110110110100101111
element03 13 id18 111111011110101110101011010111110000010111111011100100011111
element03 13 id19 011100110110110111100101110101111110111100101110010111110011
element03 13 id20 100111111111100100111110110110111111111101011101110110110111
element03 13 id21 101111111111110101110110111011111110111101110110111111111111
element03 13 id22 111110010111110110101111110110111111111110101111111101110011
element03 13 id23 100111111101110110110110111110111010111110110011111111110111
element03 13 id24 110100110111110110110100111010110100110110110110110101111111
element03 13 id25 011111011010111101101001011100111110010111111011111101011010
element03 13 id26 011101111110010000111000000101101010111110100010110110110110
element03 13 id27 110100110110110010101010100011100011000000110011011100110100
element03 13 id28 010101101010110010111100101001001010111001100111110000011011
[...]
如何在 emacs 中使用 string-insert-rectangle 之类的东西来添加数量不断增加的新第三列?
PS:我知道我可以使用 bash/perl/python/etc 脚本来完成此操作,在这个问题中我问是否可以使用 emacs 轻松完成此操作。
我认为最简单的解决方案是在第一行中标记原始第三列的第一个字符,将点移动到最后一行的相同字符,然后键入:
C-uC-xrNRET id%d
RET
矩形数字线是一个交互式编译的 Lisp 函数
‘直.el’。
它与 C-x r N 结合。
(矩形数行 START END START-AT 和可选格式)
在区域矩形前面插入数字。
START-AT,如果非零,应该是一个开始的数字
数数。 FORMAT,如果非零,应该是要传递的格式字符串
与行数一起“格式化”。当交互调用时
使用前缀参数时,提示输入 START-AT 和 FORMAT。
正则表达式替换和宏技术都是需要了解的极好的通用工具,但矩形数字线几乎是针对这个问题定制的。
Edit:我当时没有注意到,但事实证明这是 Emacs 24 中的一个新功能。早期版本的 Emacs 会将该序列转换为C-x r n
(小写 n)运行完全不同的函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)