2012-10-04 58 views
1

如果我有一句話 - 「我知道一個名叫特德的人喜歡//^$」 - 或者基本上是一個有很多角色的句子,我並不想逃避,我想要插入不同名稱的副本(如約翰瑪麗鮑勃)...使用列表中的內容添加行

可以for循環通過複製句子,粘貼它作爲下一行,然後刪除名稱嗎?我如何告訴它在哪裏粘貼?

我也可以先將名稱列表粘貼到名稱周圍,然後在名稱的下面加上子句 - 例如:s/^/I know a person named /,但我發現如果有很多文字需要很多字符才能逃脫,我可能會某處出錯,浪費時間必須仔細檢查表情。

那麼,是否有更簡單的方法來從句子中獲取內容並將其放入替代命令?

+1

請添加一個之前/之後的示例。因爲這是我不知道你想達到什麼。這句話的末尾是什麼特殊字符?他們總是一樣嗎? – romainl

回答

0

和Chiel92一樣,宏指令是最簡單的方法。假設你有一個文本文件,它看起來像這樣:

I know a person named XXX who like //^$ 

John 
Mary 
Bob 

我個人:

  1. 轉至1號線,併線複製到一個名爲緩衝::1<enter>"iyy
  2. 轉到第3行並記錄在線上複製名稱的宏,粘貼i緩衝區的內容,然後用該行上的名稱替換XXX:
    1. 轉到第3行::3<enter>
    2. 開始錄製宏到寄存器M:qm
    3. 刪除名稱到一個不同的寄存器:"od$
    4. 粘貼在模板:"ipkdd
    5. XXX替換名稱爲::s/XXX/^Ro/
    6. 轉到下一個行:j
    7. 完成錄製:q

對於每名行現在可以重播宏:讓宏時,並有重播,我總是發現它有助於看看我的記錄註冊表的內容問題:@m@@

注意。您只需執行^R^Rm即可查看您記錄的所有命令。

+0

我不知道爲什麼,但我從來沒有想過使用這個宏。謝謝! – itchmyback

1

你可以用vim中的宏來做到這一點。 在這裏查看關於vim宏的解釋:http://vim.wikia.com/wiki/Macros。 這比使用正則表達式的東西容易得多。

+0

我的下一個將是如何使用宏的大列表,我認爲這就是爲什麼我從來沒有想過使用宏。但是那個鏈接有一個非常漂亮的遞歸宏技巧。 – itchmyback