2011-12-13 41 views
0

如何在Vim中編寫一個動作腳本,它將選取所需的行,縮進一次,跳轉到開頭並插入一些代碼,然後跳到末尾插入一些代碼?Vim腳本縮進選擇的代碼,在選擇前後插入代碼

需要在開始和結束時插入的代碼是靜態的,並且不需要改變(至少在這一點上不是)。

+0

喜歡,阻止評論? – Rook 2011-12-13 21:47:24

回答

3

比方說,開始的文本---和結束文本是***

:execute "normal gv>i---\<Esc>`>a***" 

如果你想將它記錄到一個宏,說緩衝區「是」,然後用視覺選擇開始,用途:

q一個開始錄製成a
>縮進
插入模式
---開始文本
Esc鍵正常模式最後可視選擇的
`>
一個在01之後插入 ***最終文本
Esc鍵正常模式
q結束錄音

2

以下關鍵序列步驟應該起作用。

  1. 搜索開始行例如/MYSEARCH
  2. QA - 開始重新編碼a
  3. Vxj其中x是線(S)的數所需
  4. >>縮進
  5. ESC
  6. '<跳轉到st標記行的藝術
  7. 插入你想要的任何東西(例如Ø開始正上方一個新行)
  8. ESC
  9. 「>跳轉到標記線結束
  10. 插入任何你想要的(如Ø開始一個新的行權以下)
  11. 命中q結束錄製宏。

或者類似的東西。

HTH

0

這是一個老問題,但我想我反正貢獻。這就是你可以如何創建一段文字並將文字換行。不完全是你所要求的,但如果你編寫了一小段漂亮的小代碼,這個代碼就更簡潔了。從款型的任何地方:

> IP(縮進的段落)

KI(第一行前跳,並打開一個新的)

你想在一開始是什麼類型該段在這裏

< Esc鍵>}(跳轉到段落的最後一行之後)

類型你想的段落

<CR> < Esc鍵>

注意事項這裏到底有什麼,因爲暗示,這必須是一個「段落」(沒有空行)和如果段落後沒有新行,這將無法正常工作。爲了適應這種情況,請使用i而不是,但在插入代碼的最低位之前,您將成爲空行。如果你想解釋這個,你需要在vimscript中寫一些東西。

這裏是所有我使用用於建立宏t做一個開始/救援/結束(例如)塊的筆劃:

QT> ipkibegin < Esc鍵>} orescue <CR>端<CR> <Esc> q

確實有更好的方法,但這是保持在marco級別。