読書メモ 実践Vim

Vimについての実践的な内容。(タイトルのまんま)

だいじなこと

  • とりあえず.(ドットコマンド)で繰り返す!繰り返せるよう操作を積み重ねてく。
  • オペレーションとモーションを習得。

第1章 Vimのやり方

TIP1:ドットコマンドとは

  • ドットコマンドは直前の変更を繰り返す

挿入モードに入った瞬間からノーマルモードに戻るまでの間、Vimは全てのキーストロークを記録する。

TIP2:DRY

複合コマンド

  • C 現在カーソルから行末まで文字変更。c$と同じ。

  • S 現在行を文字変更、

  • s 1文字変更。変更後も挿入モードのまま。 clと同じ。

  • I 行頭に挿入

  • A 行末に挿入

  • o カーソル位置の下に改行

  • O カーソル位置の上に改行

TIP6 ドットの公式

理想形は、移動にキー入力1回、何かするのにキー入力1回。

第1部 モード

第2章 ノーマルモード

TIP8 アンドゥはひとまとめに

挿入モードに入った瞬間からノーマルモードに戻るまでの入力が、アンドゥの単位となる。 (ドットコマンドの繰り返しも同様の単位となる)

TIP11 繰り返しで済むなら、回数を指定しない

2dwとかしないでdw.とした方が良い。 繰り返し、アンドゥの単位がひとつの方が扱いやすい。

TIP12 統合して統治せよ

オペレータ+モーション=アクション

よく使うオペレータコマンド

  • g~ 大文字小文字の入れ換え

  • gu 小文字化

  • gU 大文字化

オペレータコマンドを連続入力して呼び出すと、現在行に適用される

第3章 挿入モード

TIP13 挿入モードで簡単修正

  • C-h 直前の1文字削除

  • C-w 直前の1単語を削除

  • C-u 行頭までを削除

メモ

CapsLockキーはあんま意味ないので、ctrlとかescキーに再マッピングすると良い。 (日本語配列だったら無変換キーも再マッピングして良いと思う!)

TIP15 挿入モードでレジスタから貼り付け

C-r{register}

TIP16 簡単な計算をその場で実行

第4章 ビジュアルモード

TIP21 ビジュアルな選択範囲の定義

  • o 選択範囲の始点と終点を入れ替える

TIP23 可能ならばビジュアルコマンドではなくオペレータを優先しよう

その方がドットコマンドとの連携がしやすい

第5章 コマンドラインモード

TIP30 選択範囲に対してノーマルモードのコマンドを実行する

  • ビジュアルモードで選択し、:normal . 選択範囲にドットコマンド実行

  • :normal I// 行頭に//挿入

TIP31 直前のExコマンドを繰り返す

@:

TIP33 カーソル位置にある単語をコマンドプロンプトに挿入

  • C-rC-w

例︎ testをカーソル位置の単語に置換 :%s/test/C-rC-w/g

TIP34 履歴からコマンドを呼び出す

q:で呼び出す

:qで閉じる

CRで実行

コマンドラインモードでは、C-fキーマッピングを使って、コマンドラインウィンドウに切り替えられる

TIP35 シェルでコマンドを実行

:!でシェルコマンドを実行

引数もわたせる :!cmd % (編集中のファイル名をわたしている)

:read !cmd コマンドの標準出力を、バッファに送り込める

:read !ls ➡︎ls結果を編集中のバッファに挿入

:write !cmd コマンドの標準入力にバッファの内容を使用する

第6章 複数ファイルの管理

TIP36 バッファリストを使ってオープン中のファイルを管理する

  • :ls バッファリストを表示する
    • %記号 ウィンドウに現在表示されてるバッファ
    • #記号 代替ファイル(ひとつ前に表示していたファイル)
      ➡︎C-^で切り替えられる
    • +記号 保存されてない変更あり
  • :bp 前のバッファ
  • :bn 次のバッファ

TIP37 引数リストを使ってバッファをコレクションにまとめる

  • :prev 前のファイル
  • :next 次のファイル

バッファリストは机みたいなものだ。つまり、いつもゴチャゴチャしている。引数リストは独立した作業場所で、広々と作業をしたいときのために、いつでもきれいになっている。

第7章 ファイルのオープンとディスクへの保存

:e .
現在の作業ディレクトリでファイルエクスプローラをオープン

:E
アクティブなバッファのディレクトリでファイルエクスプローラをオープン

第3部 スピードアップ

ここから更に重要。
テキストオブジェクトとか。

第8章