テクニック:Vimの縦編集モード

5419 ワード

from: http://www.ibm.com/developerworks/cn/linux/l-cn-vimcolumn/
開始前
人間の脳の文字の処理は平面的なので、文章を閲覧したり、資料を検索したり、コードを再構築したりして、横読みしたり、縦読みしたり、検索機能を使って、文字を平面全体として使用したりします.文字を編集したり、コードを書いたりするときは横ではなく縦です.通常のテキストエディタは横編集であり、縦編集も特色機能としてよく使用されます.たとえば、Vim、EditPlus、UltraEditなどのエディタには、縦編集モード、または列モードと呼ばれます.日常的なワープロツールであるMicrosoft WordやOpenOffice Writerのように、機能キーALTを押すことで縦にテキストを選択し、テキストを操作することもできます.縦編集はエディタの機能だけでなく、人々が問題を考える方法の一つであり、プロジェクト記号、段落番号は、縦編集の体現である.
Vimの縦編集モードは起動が便利で、使用が柔軟で、プラグインと合わせて実用的な高度な機能を実現することができます.
トップに戻る
起動方法
Vimコマンドモードで、カーソルを移動して位置を指定し、  ctrl-v後ステータスバーにVISUAL BLOCKと表示され、縦編集モードに入ります.カーソルを移動して、編集する領域を必要に応じて選択します.注:WindowsバージョンのVimでは、キーの組み合わせ  ctrl-vは通常テキストペーストとしてマッピングされるので、Window版のVimの縦編集モードはctrl-qによって開始される.もちろん、柔軟なVimは、ユーザーが独自に結合キーを定義することもできます.
トップに戻る
例1:一括修正コードに対する縦編集の適用例
列の数:
 10.1.5.214 
 10.1.5.212 
 10.1.5.210

シーケンスに編集:
 ping -c 4 10.5.5.214 >> result0 
 ping -c 4 10.5.5.212 >> result0 
 ping -c 4 10.5.5.210 >> result0

これは、IP数列を実行可能なpingコマンドシーケンスに変更するプロセスです.
ステップ1:変更
IP数列の2番目のセグメントのすべての数字「1」を「5」に変更します.
カーソルを1行目のIPアドレス2段目の「1」に位置付けるctrl-v 縦編集モードに入るカーソルを最後の行に移動し、変更する列を視覚ブロックで上書きします.修正モードに入る入力数字「5」ESC 縦編集モードを終了し、選択されたすべての数字が「5」に変更され、コマンドモードに戻る
結果は次のとおりです.
 10.5.5.214 
 10.5.5.212 
 10.5.5.210

ステップ2:前に追加
すべての行の前にping-c 4を追加します.
カーソルを最初の行の最初の列に配置ctrl-v 縦編集モードに入るカーソルを最後の行の最初の列に移動します.ビジュアルブロックは最初の列を上書きします.行頭挿入モードに入るping -c 4 要求文字「ping–c 4」を入力ESC 縦編集モードを終了すると、選択したすべての文字の前に「ping–c 4」が追加され、コマンドモードに戻ります.
結果は次のとおりです.
 ping -c 4 10.5.5.214 
 ping -c 4 10.5.5.212 
 ping -c 4 10.5.5.210

ステップ3:追加後
すべての行の後に">>result 0"を追加します.
カーソルを最初の行の最後の列に配置ctrl-v  縦編集モードに入るG  カーソルを最後の行の最後の列に移動し、VISUAL BLOCKが最後の列を上書きします.A  行末挿入モードに入る>> result入力に必要な文字">>result 0"ESC  縦編集モードを終了し、選択したすべての文字に「>>result 0」を追加し、コマンドモードに戻ります.
結果は次のとおりです.
 ping -c 4 10.5.5.214 >> result0 
 ping -c 4 10.5.5.212 >> result0 
 ping -c 4 10.5.5.210 >> result0

以上の3つのステップには、縦方向が編集方向であるという共通の特徴があります.以上の3行のコードを例に挙げた方法も、より多くの行に適用することができる.
トップに戻る
VisIncrのインストールと操作
以上の例で示したコードの縦編集は,一般的なコード再構成機能や正規表現と組み合わせた検索置換によっても実現できる.しかし、Vimの縦編集モードは、プラグインVisIncrの拡張により、縦の数列の生成など、より豊富な機能を実現することもできる.
から VimIncrプラグインのインストールファイルを検索し、Vimワークディレクトリにダウンロードします.プラグインをインストールするには、次のコマンドを実行します.
 vim visincr.vba.gz 
 :so % 
 :q

操作方法は、例1のコードを例にとります.
使用  ctrl-vおよび移動カーソル選択の最後に数字「0」の列:コロンを入力してVimをコマンドラインモードにトリガ:I最初の数字を出発点とし、縦方向に増分数列を生成し、幅は1である.ENTER運転キー実行命令を入力
結果は次のとおりです.
 ping -c 4 10.5.5.214 >> result0 
 ping -c 4 10.5.5.212 >> result1 
 ping -c 4 10.5.5.210 >> result2

トップに戻る
例2:VisIncrによるテストデータ生成の応用実証
アプリケーション開発の過程で、簡単で規則的なテストデータを生成することがよくあります.たとえば、1つのテーブルについて:
 testTable (”ipaddr” ,”filename”, ”owner”)

次のSQL文を生成します.
 insert into test values("10.5.5.214”,”result0”,”testa”); 
 insert into test values(”10.5.5.212”,”result1”,”testb”); 
 insert into test values(”10.5.5.210”,”result2”,”testc”);

この縦方向に規則的な文シーケンスは,VinIncrが縦方向編集機能を適用することによって構築できる.
ステップ1:準備
新しいVim編集ページを開き、コマンドモードで「3」を入力し、「i」を入力して編集モードに入ります.数字「3」は、今回入力した内容が3回も繰り返されることを意味します.
VIMに最初の行を入力します.
 insert into test values(”10.5.5.214”,”result0”,”testa”);

回車終了行で入力して新しい行を開き、ESCキーを押して編集モードを終了します.
次のようになります.
 insert into test values(”10.5.5.214”,”result0”,”testa”); 
 insert into test values(”10.5.5.214”,”result0”,”testa”); 
 insert into test values(”10.5.5.214”,”result0”,”testa”);

ステップ2:減算列の作成
ipaddr列の場合、  ctrl-vおよび移動カーソルは、IPアドレスの最後のセグメントが2の振幅で減少する部分を選択する.:  ハイフンを入力してVimをコマンドラインモードにトリガ:I - 最初の数字を出発点とし、縦方向に減少数列を生成し、幅は2ENTER  運転キー実行コマンドの入力
結果は次のとおりです.
 insert into test values(”10.5.5.214”,”result0”,”testa”); 
 insert into test values(”10.5.5.212”,”result0”,”testa”); 
 insert into test values(”10.5.5.210”,”result0”,”testa”);

ステップ3:増分列の作成
filename列では、前のセクションで説明した方法を使用します.結果は次のとおりです.
 insert into test values(”10.5.5.214”,”result0”,”testa”); 
 insert into test values(”10.5.5.212”,”result1”,”testa”); 
 insert into test values(”10.5.5.210”,”result2”,”testa”);

ステップ4:増分文字列の作成
owner列の場合、  ctrl-vおよびカーソルを移動して、英語のアルファベットが増加する部分を選択します.:  ハイフンを入力してVimをコマンドラインモードにトリガ:IA 最初のアルファベットを出発点とし、アルファベット順のシーケンスを縦方向に生成ENTER リターンキー実行コマンドの入力
結果は次のとおりです.
 insert into test values(”10.5.5.214”,”result0”,”testa”); 
 insert into test values(”10.5.5.212”,”result1”,”testb”); 
 insert into test values(”10.5.5.210”,”result2”,”testc”);

以上の手順では,VimプラグインVisIncrによるコードの縦編集を用いて,縦方向に論理法則のある数列を生成することを実証した.
トップに戻る
まとめ
Vimは編集ツールであるだけでなく、思考方法でもあり、Vimには思考の方向を導くテクニックがたくさんあり、Vimがこの様々なエディタを次々と登場させたときに長い間新しいものになった.本稿では,縦編集から切り込み点として,開発・テストにおいて使用可能な例をVisIncrと組み合わせて実証した.