Skip to content

第 5 章:ウィンドウ分割とタブ ​

まず、混同しやすい三つの概念を分けます。

  • バッファ:編集のためメモリへ読み込まれたテキスト
  • ウィンドウ:バッファを表示する表示領域
  • タブページ:一つ以上のウィンドウを含むレイアウト

同じバッファを二つのウィンドウに表示でき、一つのタブページに複数のウィンドウを 置けます。Vim のタブは「1 タブ = 1 ファイル」ではありません。

ウィンドウ分割 ​

別の文書を参照しながら現在の文書を編集したり(翻訳など)、別の文書からコードを コピーしたりする場面はよくあります。たとえば HTML 要素の class 名を CSS 文書へ コピーするときです。こうした場合に画面分割が役立ちます。

分割する ​

  • :split(省略形 :sp)または Ctrl-w s 上下に分割
  • :vsplit(省略形 :vs)または Ctrl-w v 左右に分割
  • :diffsplit(省略形 :diffs)差分モードで分割。後ろに {filename} を指定可能

ウィンドウ間を移動する ​

  • Ctrl-w w 次のウィンドウをアクティブにする
  • Ctrl-w j 下のウィンドウをアクティブにする
  • Ctrl-w k 上のウィンドウをアクティブにする
  • Ctrl-w h 左のウィンドウをアクティブにする
  • Ctrl-w l 右のウィンドウをアクティブにする

分割ウィンドウを移動する ​

  • Ctrl-w L 右端へ移動
  • Ctrl-w H 左端へ移動
  • Ctrl-w K 最上部へ移動
  • Ctrl-w J 最下部へ移動

注意:大文字と小文字は区別されます。たとえば下側のウィンドウを右端へ移動すると、 上下分割を左右分割へ変換できます。

ウィンドウの大きさを変える ​

  • Ctrl-w = すべて同じ大きさにする
  • Ctrl-w + 高さを増やす
  • Ctrl-w - 高さを減らす
  • Ctrl-w _ 高さを最大にする
  • Ctrl-w > 幅を増やす
  • Ctrl-w < 幅を減らす
  • Ctrl-w | 幅を最大にする

練習、練習、そして練習です!

:split を実行し、二つのウィンドウを別々にスクロールしてください。同じバッファ の二つの表示です。片方で編集するともう片方にも反映されます。u で元に戻し、 Ctrl-w c で現在のウィンドウを閉じます。

タブページ ​

タブページは、コードとテスト、文書とログなど、異なるウィンドウ構成を保存するのに 適しています。ファイルを切り替えるだけなら、第 2 章のバッファを 使うほうが直接的です。

タブを作成する ​

  • :tabnew または :tabedit(省略形 :tabe)新しいタブを開く
  • Ctrl-w gf カーソル位置のファイル名を新しいタブで開く

注意::tabnew と :tabedit の後ろには <space><filename> を指定でき、その ファイルを新しいタブで開けます。また : の後ろに数値を付けると、タブ一覧内の 作成位置(0 始まり)を指定できます。

タブを切り替える ​

  • gt または :tabnext(省略形 :tabn)次のタブへ移動。末尾から先頭へ循環
  • gT または :tabprevious(省略形 :tabp)前のタブへ移動。先頭から末尾へ循環
  • :tabrewind(省略形 :tabr)または :tabfirst(省略形 :tabfir)最初へ移動
  • :tablast(省略形 :tabl)最後のタブへ移動

タブを閉じる ​

  • :tabclose(省略形 :tabc)現在のタブを閉じる
  • :-tabc 前のタブを閉じる
  • :+tabc 次のタブを閉じる
  • :tabonly(省略形 :tabo)現在以外のタブを閉じる

:tabnew chapter01.md、:vsplit chapter02.md の順に実行してください。gt で タブページ間、Ctrl-w w で現在のタブ内のウィンドウ間を移動します。最後に :close と :tabclose を実行して本章へ戻ります。

次の章ではブロック操作を扱います。