VimM#3行ってきた

VimM#3 - VimM (Vim Movement) - livedoor Wiki(ウィキ)

はじめての勉強会

  • はじめての勉強会。
    • この雰囲気なら楽しいと思った。
    • id:amachangとかid:wakutekaとかに会えた。
    • そして周りに使いこなしてる人がいっぱいいて恐れ多かった。
  • はじめての秋葉原。
    • 回る時間なぞ無かった。
    • 秋葉原のアニメイトとらのあなも見てみたかったし、Melonbooksとかも一体どんな所だろうかと非常に気になったんだけど。
  • あと行く途中で小学校時代の同級生(受験仲間)に会った。

1部

1. Vimで効率的なテキスト編集

  • 移動コマンド 'gg','k','j','G'や、'^','h','l','$'
  • '*'で、カーソル位置の単語で検索
  • 'gf'で、カーソル位置のファイル名を開く
  • ビジュアルモードで":%s/..."で検索できる
  • 'C-n'や'C-p'で、ファイル中の単語から補完できる

2. マクロ

  • マクロはレジスタに記録する
  • マクロで使うレジスタは主に[a-z]、記録で[A-Z]を使うと追記。
  • マクロの記録開始:'q'
  • Vimに関係する殆どの操作が記録される。
  • マクロの記録終了:'q'
  • マクロの呼び出し:'@'
  • もちろん再帰呼び出しとか可能。
  • 'C-a'/'C-x'でカーソル位置の数字をインクリメント/デクリメント
    • この手の操作によって桁が変動したりするので、'h','j','k','l'よりも、'f'や'w'、'/'などで移動することを心がける
  • ':vimgrep 'と':cn'で検索
  • レジスタの他の使用方法
    • コマンドラインモードまたはインサートモードの場合は、'C-r 'で挿入
    • ノーマルモードやビジュアルモードの場合は、'"'で使用
    • コマンドラインモードの場合は、'@'で参照
    • :let @a = "hogehoge"とか。
  • expression register
    • "="レジスタに続けて式を書き、その演算結果がレジスタの値になる。
    • 主に'C-r'と組み合わせて使う。('C-r = 3+7'とか)
    • 計算式や変数、関数の利用もできる
  • random
    • 残念ながらVimマクロでrandomを行えるクールな操作方法は無いらしい
    • perlを呼び出すスクリプトとかを使って回避

3. 俺の.vimrcを見ろ!PHP使いの為の設定とプラグイン

主にプラグインの紹介

4. operator, the true power of Vim

拡張的利用

  • ビジュアルモード。
    • vで選択開始
      • v 文字単位選択
      • V 行選択
      • C-v 矩形選択
    • 選択後、操作を行う
      • d カット
      • y ヤンク(コピー)
  • w word
  • b back-word
  • } paragraph
  • ビジュアルモードと移動の組み合わせで様々なできる。直交性が高く便利
  • が、ビジュアルモードは要らなくなる
  • 操作 + 移動 の組み合わせでできる。さらに直交性が高い。またタイプ数が減る
  • また、exclusive motionにおける問題がなくなる
    • 'vwd'と'dw'では結果が違う
  • また、テキストオブジェクトを使う。
    • 単語の途中から、その単語を消す場合:'daw'
    • つまり、'aw'で単語のテキストオブジェクト
    • ap,ipは段落
      • apはその前の空行を含む
  • textobj-userでテキストオブジェクトを作る
  • その次の段階は、オペレータを作る・・・以下不明。

2部

2部はいろいろあったがメモし忘れた。