2011-12-13 15 views
0

Vimで選択した行を取り込み、一度インデントし、先頭にジャンプしてコードを挿入し、最後にジャンプしていくつかのコードを挿入しますか?選択したコードをインデントするVimスクリプト

最初と最後に挿入する必要があるコードは静的であり、変更する必要はありません(少なくとも、この時点ではありません)。

+0

いいね、ブロックコメント? – Rook

+0

これもうまくいくはずです。この特定のケースでは、デバッグのためにtry/catchブロックにいくつかの行をラップすることを考えています(エラーをstderrにリダイレクトする必要があります)。 – exupero

答えて

3

はのは、テキストが---で始まり、テキストを終了するとしましょう、あなたはマクロにそれを記録したい場合は、視覚的な選択で始まる、「A」をバッファ言う***

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

です使用:

Qa
に記録
開始>インデント
挿入モード
-- -最後の視覚的な選択の開始テキスト
Escキーノーマルモード
`>エンド
01の後に挿入

2

次のキーシーケンス手順が有効です。

  1. スタートラインの検索など。
  2. ESC
  3. をインデントする xラインの必要数(S)である aマクロ
  4. Vxjを再符号化開始
  5. >> - /mysearch
  6. QA
  7. '< stにジャンプしますマークされた行のアート
  8. O右の上に新しい行を開始する)
  9. ESC
  10. 「>改行権利を開始するためにマークされた行
  11. あなたが好きなのインサート( O例えばの終わりにジャンプし以下)
  12. ヒットqマクロを記録終了します。

またはこのようなものです。

HTH

0

を記録 ***エンドテキスト
Escキーノーマルモード
Q終わりこれは、古い質問ですが、私はとにかく貢献しようと思いました。これは、段落を囲んでテキストを囲む方法です。ちょうどあなたが求めているものではありませんが、コードの小さな素敵な小さな塊を書くなら、これはほんのちょっとばかりです。どこでも段落タイプから:

> IP(インデント段落)

はKI(最初の行の前にジャンプし、新しいものを開く)あなたが最初に何をしたい

タイプ段落ここ

< Escキー>}(段落の最後の行の後にジャンプ)

段落

<のの終わりに何をしたいタイプCR > < Escキー>

暗示として、ここで注意事項は、あり、これは「段落」(空行)でなければならず、段落の後に改行がない場合、これは正しく動作しません。これに対処するには、oの代わりにiを使用しますが、挿入するコードの最下位ビットの前に空の行が表示されます。これを考慮したい場合は、vimscriptに何かを書く必要があります。< Escキー>} orescue <CR>端<CR> ipkibegin

QT>:ここ

はI開始/レスキュー/終了(例えば)のブロックを実行するマクロtを設定するために使用するすべてのストロークであります< Escキー> Q

は確かに良い方法がありますが、これはマルコ・レベルでそれを保っています。

関連する問題