質問
vim で開発を進めていくと、Eclipse の「テンプレート」のような便利なコードのブロックをコピーしたくなるようになります。
コードチャンクごとに別のファイルを作成し、単にそれらを読み込むことを考えていました
:r code-fornext
しかし、それはちょっと原始的なように思えます。グーグルで調べてみると、vim マクロについての記述や「マップ」に関する記述が見つかりましたが、簡単そうなものは何もありませんでした。
私が探しているのは例えばです。Eclipse の「テンプレート」のようなものなので、コードのチャンクの中央にカーソルを置いてポップインします。あるいは、JEdit の「マクロ」を使用すると、複雑な削除や名前変更を 1 行で記録でき、その後、他の 10 行で再度再生して同じことを行うことができます。
vim にはこれら 2 つの機能のようなものはありますか?
解決
Vim でマクロを記録するには、コマンド モードで、 q
キーとマクロを割り当てる別のキーを押します。マクロをすぐに捨てるには、通常はただ押すだけです qq
マクロを q
鍵。録音モードに入ったら、キーストロークを実行してください。完了したら、コマンドモードに戻っていることを確認して、 をクリックしてください q
もう一度押すと録音が停止します。次にマクロを手動で再生するには、次のように入力します。 @q
. 。以前に実行したマクロを再実行するには、次のように入力します。 @@
または、10 回実行するには、次のように入力します。 10@q
または 20@q
, 、など。
要約すれば:
+----------------------------------+-------------------------------------+
| start recording a macro | qX (X = key to assign macro to) |
+----------------------------------+-------------------------------------+
| stop recording a macro | q |
+----------------------------------+-------------------------------------+
| playback macro | @X (X = key macro was assigned to) |
+----------------------------------+-------------------------------------+
| replay previously played macro | @@ |
+----------------------------------+-------------------------------------+
コードチャンクに関しては、TextMate のスニペット機能を模倣した snipMate という Vim プラグインを見つけて使い始めました。プラグインはここから入手できます。
http://www.vim.org/scripts/script.php?script_id=2540
そして、snipMate の使用に関する短い記事 (使用中の短いスクリーンキャストとともに):
http://www.catonmat.net/blog/vim-plugins-snipmate-vim/
これがお役に立てば幸いです。
他のヒント
vim.wikia には、 ヒントのカテゴリー スニペットと略語の拡張に特化しています。複雑なスニペット/テンプレート ファイルの定義を容易にするプラグインのリストも表示されます。
HTH、