2014-11-13 33 views
4

有以下內容的緩衝區。用緩衝區中的每行代替一行文本中的行嗎?

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替換爲緩衝區中的一行。

想法?

+0

Yasnippet內置了對所選文本環繞的支持。也許一個'(save-excursion(goto-char(point-max))(while(re-search-backward「\ n」nil t)。。。))'可以嵌入到片段中 - 如果不是,那麼一個單獨的'elisp'函數可以調用我所擁有的代碼片段'。 。 .'上面列出。當然,它也可以在沒有yasnippet的情況下完成。 – lawlist

+0

我希望有一些易於使用的「即時」功能。這種事情不時出現,但我很少需要再次做相同的變換。因此,製作一段代碼只是爲了替換50個奇數行而已。 –

回答

2

如果行不是太長了以下工作(注意\&-TICK,因爲它是在query-replace-regexp幫助描述擴展到全場比賽):

  1. 設置光標的開始第一行。
  2. 出版社M-:
  3. 以下文本粘貼到迷你緩衝區中,然後按進入
(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. CM-%交互調用query-replace-regexp
    3. 源正則表達式^.*$粘貼到迷你緩衝區中,然後按進入
    4. 以下到迷你緩衝區:
    <tr> 
    <td style="text-align: center;"> 
    \& 
    </td> 
    <td style="text-align: center;"> 
    8</td> 
    <td style="text-align: center;"> 
    &#160;</td> 
    </tr> 
    

    並按進入和!取代所有匹配。

    +0

    我以前沒見過'\&'竅門。做得很好。 –

    +0

    我在'\&'上添加了一條評論。對不起,由於缺少評論造成的任何不便。 – Tobias