text - emacs 字符串插入矩形数字向量?

标签 text emacs

如何使用 emacs 字符串插入矩形操作将数字向量添加到一系列行中?例如,我的 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可再生能源

rectangle-number-lines is an interactive compiled Lisp function in `rect.el'.

It is bound to C-x r N.

(rectangle-number-lines START END START-AT &optional FORMAT)

Insert numbers in front of the region-rectangle.

START-AT, if non-nil, should be a number from which to begin counting. FORMAT, if non-nil, should be a format string to pass to `format' along with the line count. When called interactively with a prefix argument, prompt for START-AT and FORMAT.



regexp-replace 和 macro 技术都是需要了解的极好的通用工具,但矩形数字行几乎是为这个问题定制的。

编辑 :我当时没有注意到,但事实证明这是 Emacs 24 中的一个新功能。早期版本的 Emacs 会将这个序列转换为 C-x r n (小写 n)运行一个完全不同的功能。

关于text - emacs 字符串插入矩形数字向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9922539/

相关文章:

listview - React Native ListView : rendered Text is not selectable

text - GraphicsMagick 文本问题

php - gettext 带数字的字符串

Emacs -- dired-mode 测试以确定远程服务器名称/地址

c++ - Emacs 可以在重新缩进缓冲区时将 C++ 大括号转换为挂起吗?

java - 如何为 Google Java 风格设置 emacs

python - Python 中类似 Excel 的文本导入 : automatically parsing fixed width columns

linux - 在另一个文本文件中存在的文本之后打印特定行

emacs - 命令扩展 : how to convince eshell I'm not trying to execute an elisp expression?

c++ - 如何让 emacs 像对待 '{' 和 '}' 一样对待#ifdef 和#endif?