おぎろぐはてブロ

なんだかんだエンジニアになって10年以上

(PHP)プログラマのためのVIM (6) - ビジュアルモード、ウィンドウ、タブ

進むたびに、1回の量が少なくなっているような気もしなくもない。

ビジュアルモード (visual mode)

  • これなら、あいまいになってる範囲や移動コマンドを思い出すより簡単
  • 選択開始は
    • v - 文字単位
    • V - 行単位
    • CTRL-V - ブロック単位 (矩形選択)
      • [補足] CTRL-○のときは、基本的に、○のところは小文字でも大文字でも同じ動きです
  • 選択範囲を変更するのに、移動コマンドをなんでも使える
  • 選択中に通常コマンド及び:コマンド(=置換とか)を実行できる
  • ビジュアルブロックモードはすごいよ (→CTRL-V)
    • 特にテーブルのようなテキストのとき
    • [tip] ビジュアルブロックで選択中に、oで、矩形選択中の対角にカーソルが移動します。反対側の選択範囲を変えたいときに使います。下の図のように選択している状態でoをおすと、左上隅のFに移動します。また、Oだと、同じ行の反対側(左下のF)に移動します。


  • ブロックモードでの一括操作
    • I<text><Esc> - 選択した範囲の前に全行<text>を挿入
    • A<text><Esc> - 選択した範囲の後に全行<text>を挿入
    • c<text><Esc> - 選択したブロックの各行について<text>に選択範囲を置き換える
    • r<char><Esc> - 選択範囲を全て<char>に置き換える

ウィンドウ

  • ウィンドウの操作について習得しよう
    • [補足] ここでのウィンドウとは、vimの中で画面分割してるところです
  • ウィンドウ間を移動するにはどうしたらよいか
  • :new (新規ウィンドウ作成)、:sp (画面分割)をすぐに使えるように覚えておこう
  • CTRL-W - ウィンドウ間の移動と、サイズ変更の必須コマンドを覚えておこう
  • [補足] ちょっと原文が少ないので自分がよく使っている範囲で補足しておきます (↓の上から4つだけ覚えておけばどうにかなる)
    • ウィンドウ作成
      • :new - 新規ウィンドウ作成
      • :sp - 画面分割 (水平分割)
      • :vsp - 垂直分割
    • ウィンドウ間移動
      • CTRL-W CTRL-W or CTRL-W w - ウィンドウ間を順に移動
      • CTRL-W CTRL-K or CTRL-W k or CTRL-W ↑- 現在のウィンドウから上に移動
      • CTRL-W CTRL-J or CTRL-W j or CTRL-W ↓- 現在のウィンドウから下に移動
      • CTRL-W CTRL-H or CTRL-W h or CTRL-W ←- 現在のウィンドウから左に移動
      • CTRL-W CTRL-L or CTRL-W l or CTRL-W →- 現在のウィンドウから右に移動
    • ウィンドウサイズ変更
      • nCTRL-W+ or CTRL-Wn+ - 高さをn行分高くする
      • nCTRL-W- or CTRL-Wn- - 高さをn行分低くする
      • nCTRL-W< or CTRL-Wn< - 幅をn行分狭くする
      • nCTRL-W> or CTRL-Wn> - 幅をn行分広くする
      • CTRL-W= - 全てのウィンドウの幅・高さを揃える

タブ

  • vim7ではタブがサポートされた
  • :tabe <file>で新しいタブでファイルを編集できる
  • :tabcで閉じる
  • :tabn, :tabp (もしくは、gt, gT)でタブ間移動
  • たぶん、もっと簡単に移動できるようにキーをマップしたいんじゃないかな (もし、gt, gTが合わないなら)
    • [補足] CTRL-<PageDown>, CTRL-<PageUp>にも割り当てられています。(いま使ってるキーボードはファンクションキー押さないとダメだから使えないけど) デフォルトで他にどのようなコマンドにアサインされているか知るためには、:help gtとかヘルプ+コマンド叩いてみると、いいかも

40ページ/全77ページ

半分超えた!
次は、補完、キーマッピング