#book #実践Vim ## TIP21 ビジュアルな選択範囲の定義 |コマンド | 結果| |:---|:--| |ctr-v |矩形選択 | |gv |前に選択していた箇所を選択する| (当たり前なvとVは省いた) ``` Select from here to here. ``` vbbで戻って、oを使えばビジュアルモードを抜けなくても選択範囲を指定し直せる。 ## TIP22 行指向のビジュアルモードコマンドを繰り返す インデントを揃えたい ```python def fib(n): a, b = 0, 1 while a < n: print a, a, b = b, a+b fib(42) ``` vj >. ## TIP23 可能ならばビジュアルコマンドではなくオペレーターを優先しよう タグ内の文字を大文字にしたい ``` <a href="#">one</a> <a href="#">two</a> <a href="#">three</a> ``` vit(タグの内容を選択できる) = 「visually select inside the tag」(vitはobsidianだと使えない) vitUだと、.で繰り返したときにthreeのうち3文字しか大文字にならない gUitは、できる。 → 繰り返しを置こうなうのは、基本的にオペレーターコマンドを優先して仕様すべき。 ## TIP24 ブロック指向のビジュアルモードで表形式のデータを編集 テーブルを下のように書き換えたい ``` Chapter Page Normal mode 15 Insert mode 31 Visual mode 44 Chapter | Page ----------------- Normal mode| 15 Insert mode| 31 Visual mode| 44 ``` ctr-v 3j x... gv (前に選択していた箇所(矩形選択箇所)を再選択) r| (|に置換) yyp(一番上の行をyank) Vr-(行指定して↑で追加した行を-に置換) ## TIP25 テキスト列の変更 imagesのディレクトリを書き換えたい ```css li.one a{ background-image: url('/images/sprite.png'); } li.two a{ background-image: url('/images/sprite.png'); } li.three a{ background-image: url('/images/sprite.png'); } ``` ctrl-v jje c 書き換え ## TIP26 矩形状ではないビジュアルな選択範囲にテキストを追加 行末に;を入れたい。 ``` var foo = 1 var bar = "a" var foobar = foo + bar ``` ctrl-v jj$ A