用包含在文本块中的每一行替换缓冲区中的行?

时间:2014-11-13 19:26:08

标签: emacs elisp

有一个包含以下内容的缓冲区。

foo
bar baz bat
more text
Lorem Ipsum fido

目标是将此列表转换为HTML表格,并使用以下块包装缓冲区的每一行。

<tr>
<td style="text-align: center;">
??Text Here??
</td>
<td style="text-align: center;">
8</td>
<td style="text-align: center;">
&#160;</td>
</tr>

??Text Here替换为缓冲区中的一行。

思想?

1 个答案:

答案 0 :(得分:2)

如果行不太长,则以下工作(请注意\& - 如query-replace-regexp的帮助中所描述的那样扩展为完全匹配的刻度线:

  1. 将光标设置为第一行的开头。
  2. M - :
  3. 将以下文字粘贴到迷你缓冲区中,然后按输入
  4. (query-replace-regexp "^.*$" "<tr>
    <td style=\"text-align: center;\">
    \\&
    </td>
    <td style=\"text-align: center;\">
    8</td>
    <td style=\"text-align: center;\">
    &#160;</td>
    </tr>")
    
    1. !替换所有行。

    2. 或者你也可以:

      1. 将光标设置为第一行的开头。
      2. C-M - %以交互方式调用query-replace-regexp
      3. 将源正则表达式^.*$粘贴到迷你缓冲区中,然后按输入
      4. 进入迷你缓冲区:
      5. <tr>
        <td style="text-align: center;">
        \&
        </td>
        <td style="text-align: center;">
        8</td>
        <td style="text-align: center;">
        &#160;</td>
        </tr>
        

        然后按输入和!替换所有比赛。