Vim マクロ機能を使用すると、エディター内で一連のアクションを記録および再生できます。
この記事では、2 つの詳細な例を使用して、Vi および Vim エディター内で記録と再生を実行する方法について説明します。
Vim 内で記録および再生するためのハイレベルな手順
<オール>例 1:Vim マクロを使用したファイル内のシーケンス番号の生成
1. sequence-test.txt ファイルを開始して、シーケンスを生成します。
$ vim sequence-test.txt
2.挿入モードに移動し、「1」と入力します。以下に示すように
タイプ:Esc i の後に 1.
$ vim sequence-test.txt 1.
3.記録を開始し、レジスタ a に保存します。
タイプ:Esc q の後に a
- q は記録の開始を示します
- a は録音をレジスタ a に保存することを示します
- q a を実行すると、vi の下部に「recording」と表示されます。
4. 1 行目を 2 行目にコピーして 1 で 2 行にします。以下に示すように
タイプ:Esc yy の後に p
- yy は現在の行をコピーします
- p は、コピーしたばかりの行を貼り付けます
$ vim sequence-test.txt 1. 1.
注: 以下に示すように、Vim は引き続き下部に記録を表示します。
図 :下部に録音メッセージを表示する Vim
5.数を増やします。
タイプ:コントロール a
カーソルを 2 行目に置いて Ctrl+a を押すと、以下のように数字が 2 に増えます。
$ vim sequence-test.txt 1. 2.
注: vim は引き続き下部に記録を表示します。
6.記録を停止
タイプ:q
録画を停止するには、q を押します。 vim の下部にある録音メッセージがなくなっていることに気付くでしょう。
7.記録を 98 回繰り返します。
タイプ:98@a
- 98 @ a と入力して、この作業を繰り返します
- @a は、マクロ「a」を 1 回繰り返します。
- 98@a はマクロ「a」を 98 回繰り返し、マクロを使用して以下に示すようにシーケンス番号 1 ~ 100 を生成します。
図 :マクロを使用して Vim でシーケンス番号を生成する
例 2:異なる引数で Vim マクロを繰り返す
この例では、同じコマンドを異なる入力で実行する方法を説明しています。つまり、同じコマンドを異なる引数でフレーミングします。
マクロを実行する前に:change-password.sql
$ vim change-password.sql Annette Warren Anthony Preston Kelly Taylor Stiller Dennis Schwartz
マクロの記録と実行後:change-password.sql
$ vim change-password.sql ALTER USER Annette IDENTIFIED BY 'Annette'; ALTER USER Warren IDENTIFIED BY 'Warren'; ALTER USER Anthony IDENTIFIED BY 'Anthony '; ALTER USER Preston IDENTIFIED BY 'Preston'; ALTER USER Kelly IDENTIFIED BY 'Kelly '; ALTER USER Taylor IDENTIFIED BY 'Taylor'; ALTER USER Stiller IDENTIFIED BY 'Stiller'; ALTER USER Dennis IDENTIFIED BY 'Dennis'; ALTER USER Schwart IDENTIFIED BY 'Schwart';
1.名前だけの change-password.sql を開きます。
$ vim change-password.sql Annette Warren Anthony Preston Kelly Taylor Stiller Dennis Schwartz
2.記録を開始し、レジスタ a に保存します
タイプ:qa
- q は記録の開始を示します
- a は録音をレジスタ a に保存することを示します
- q a を実行すると、vi の下部にメッセージの記録が表示されます。
3.挿入モードに移動し、ALTER USER と入力します
タイプ:I (大文字の i) の後に「ALTER USER」
最初の行の任意の場所にカーソルを置き、I を押します。これにより、行の最初の文字に移動します。 ALTER USER と入力
4.次の単語 (名前など) をコピー
タイプ:Esc w yw
- Esc キーを押してから w キーを押すと、次の単語 ( name ) に移動します。
- はい、現在の単語 ( name ) をコピーします。
5.最後に移動し、「IDENTIFIED BY」と入力します
タイプ:Esc A の後に「 IDENTIFIED BY 」を入力
- Esc キーと A キーを押してカーソルを行末に移動し、スペースを入力します。
- IDENTIFIED BY ' を入力
6.コピーした名前を貼り付け
タイプ:Esc p
Esc キーを押してから p と入力し、手順 4 でコピーした名前を貼り付けます。
7.最後に引用を完成させてください。
タイプ:Esc A に続いて ';
Esc キーと A キーを押して行末に移動し、';
8.次の行にジャンプして記録を停止します。
タイプ:Esc j に続いて q
- j は次の行に移動します。
- q は録音を停止します
注: vi の下部に表示されていた録音メッセージが消えます。この段階で、change-password.sql は次のようになります。
図 :Vim マクロが記録を完了しました
9.対応する行の引数でマクロを繰り返します
タイプ:8 @ a
- 8@a と入力して、この作業を 8 回繰り返します
- @a は、マクロ「a」を 1 回繰り返します。
- 8@a は、以下に示すように、マクロ「a」を 8 回繰り返して、残りの行を自動的に完成させます
図 :Vim マクロの再生が完了しました
推奨読書
Vim 101 ハック、Ramesh Natarajan 著 .私はコマンドライン中毒です。だから当然、私は Vi と Vim エディターの大ファンです。数年前、Linux で多くの C コードを書いていたとき、利用可能な Vim エディターのヒントとコツをすべて読んでいました。私の Vim エディターの経験に基づいて、Vim エディターで高速かつ生産的になるさまざまな高度な Vim 機能に関する 101 の実用的な例を含む Vim 101 Hacks eBook を作成しました。数年間 Vi および Vim エディタを使用しており、この本をまだ読んでいない場合でも、ぜひこの本を読んでください。 Vim エディターの機能に驚かれることでしょう。
素晴らしい Vim エディターの記事
以下は、すばらしい Vi / Vim エディタの チュートリアル です。
- Vimperator アドオンを使用した Vim エディター機能を備えたターボチャージ Firefox ブラウザー
- チュートリアル:c.vim プラグインを使用して Vim を C/C++ IDE として作成
- Vim エディタをあらゆるプログラミング言語用の美しいソース コード ブラウザに変換
- Vim Editor の 12 の強力な検索と置換の例
注: The Geek Stuff を購読して、今後の Vi および Vim エディタのヒントとコツをお見逃しなく .