Skip to content

第 6 章:ブロック操作

複数行のテキストをコードへコピーし、配列を初期化したい場面があります。多くの場合、 次のように処理するでしょう。

  • 配列の宣言を書く
  • 内容を括弧内へコピーする(下のテキストと同じくらいの長さを想定)
  • 各行の先頭に '、末尾に ', を追加し、最終行まで繰り返す(50 行あると想像して ください)

Vim なら一行ずつ処理する必要はありません。16gg を押し、選択した行に書かれた 指示に従ってください。

javascript
const myArray = [
Ctrl-v でブロック選択に入り、$ で行末へ、j で次の行へ移動(実際に操作!)。
j を押して次の行へ移動
下には多くの行があるので 4j で数行まとめて移動
https://www.yahaha.net
https://www.yahaha.net
後で行番号を確認してジャンプ!A で挿入し、<single quote><comma><Esc> と入力して最初の手順を完了。
// おっと、進みすぎました。問題ありません。k で一つ前の行へ戻ります
];

最初の手順が完了したら、行頭に ' を追加します。16gg で対象行へ戻って もう一度操作しますが、今回は次の 3 点を変更します。

  1. 今回は行頭へ挿入するため、最初の行では $ ではなく 0 を押す
  2. 最後の行で A を押す代わりに I を押す。ブロック操作では A が文字の 後ろ、I が文字の前へ挿入するため
  3. 最後に <single quote><Esc> を入力する

仕上げに 21gg$x で最終行末の , を削除し、16gg7== でコードを インデントします。

完成です!

注意:操作対象を選択してから行頭・行末を指定することもできます。たとえば Ctrl-v jjj$A',<Esc> と操作します。

次は Vim のマクロを扱います。