5

vim を使って開発を進めていくと、Eclipse の「テンプレート」のように、有用なコードのブロックをコピーしたいと思うようになります。

コードチャンクごとに個別のファイルを作成し、それらを読み込むことを考えていました

:r code-fornext

しかし、それはちょっと原始的なようです。グーグルで調べてみると、言及されているvimマクロと「マップ」に関する何かが見つかりましたが、簡単に見えるものは何もありません。

私が探しているのは、たとえば Eclipse の「テンプレート」のようなものなので、カーソルを真ん中に置いてコード チャンクをポップします。または、JEdit の「マクロ」を使用すると、複雑な削除や名前の変更を 1 行で記録できます。その後、他の 10 行で同じように再生できます。

vimにはこれら2つの機能のようなものがありますか?

4

2 に答える 2

8

Vim でマクロを記録するには、コマンド モードでq、マクロを割り当てたいキーと別のキーを押します。マクロをすばやく捨てるには、通常、マクロを押してキーqqに割り当てます。q記録モードになったら、キーストロークを実行します。完了したら、コマンド モードに戻っていることを確認し、qもう一度押して記録を停止します。次に、マクロを手動で再生するには、@q. 以前に実行したマクロを再生するには、入力するか、またはなど@@を入力して 10 回実行します。10@q20@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/

これがお役に立てば幸いです。

于 2008-09-10T16:03:36.230 に答える
0

vim.wikia には、スニペットと略語の拡張に関するヒントのカテゴリがあります。複雑なスニペット/テンプレート ファイルの定義を容易にするプラグインのリストも表示されます。

HTH、

于 2008-09-17T13:42:28.240 に答える