← Vim研究所

Vimで今のウインドウ以外を閉じる方法(Ctrl-w o / :only)

2019-12-17 公開 ・ 更新: 2026-08-18

参照用に何枚もウインドウを分割して調べものをした後、最終的に1枚だけ残して集中したくなることがあります。1枚ずつCtrl-w cで閉じていくより、一発で「これ以外全部閉じる」コマンドを使うほうが速く済みます。

目次(11項目)
キーこれだけ覚える
Ctrl-w o / Ctrl-w Ctrl-o今のウインドウ以外を全部閉じる
:only / :on同上(コマンド版)
:only!未保存の変更があっても強制的に閉じる
:tabonly他のタブページを全部閉じる

キーバインドで実行する

Ctrl-w o
Ctrl-w Ctrl-o
BEFORE
┌──A──┬──B──┐
│     │*    │
├──────┴─────┤
│      C     │
└─────────────┘
Ctrl-w o
AFTER
┌─────────────┐
│      *      │
│      B      │
│             │
└─────────────┘

oは「Only」の頭文字です。Ctrl-w oだとCtrlキーを一度離す必要がありますが、Ctrl-w Ctrl-oならCtrlキーを押しっぱなしのままwoを押せるので、こちらのほうが手が楽に感じる人も多いです。カウントを指定すると、その数のウインドウだけを残す挙動になります。

3つに分割された画面。上段が左右2つ、下段が1つのウインドウに分かれている
Vim 9.1.1752。参照用に3枚まで増やした状態。ここで :only を打つと1枚に戻る

コマンドで実行する

:only
:on

コマンドの場合、短縮形の:onを覚えておくと入力が楽になります。

要点:カレントウインドウをスクリーン上唯一のウインドウにし、他は全て閉じます。ファイル・バッファ自体が削除されるわけではありません。

閉じられたウインドウのバッファはどうなるか

他のウインドウが閉じられても、そこで表示していたファイル・バッファ自体が消えるわけではありません。未保存の変更がある場合の挙動は'hidden'オプションの設定次第で変わります。

状況結果
'hidden'がオン変更を保持したまま隠れバッファとして残り、:onlyは成功する
'hidden''autowrite'とも オフ編集中のバッファを表示しているウインドウが閉じられず、:only自体が失敗する(うっかり変更を失う心配は少ない)

この挙動はウインドウを閉じる4つの方法の記事で紹介した:closeと同じ考え方になっています。

強制的に閉じたい場合

:only!
:on!

!を付けると、編集中のバッファがあっても強制的に隠れ状態にして閉じます。バッファの中身自体が削除されるわけではないので、:oldfiles:lsから後で開き直せます。

タブ単位で他のタブを整理したい場合

:onlyはあくまでカレントタブページ内のウインドウにしか作用しません。複数のタブページ自体を整理したい場合は、代わりに:tabonly(短縮形:tabo)を使います。カレントタブページ以外の全タブページを閉じる、という違いがあります。

:tabonly
:tabo

使いどころ

複数のファイルを参照しながら1つのファイルを編集していて、いよいよ編集に集中したいというタイミングでよく使います。分割を全部個別に閉じるより、:onlyで一気に整理したほうが手数が少なくて済みます。調査用に開いたウインドウが5枚あっても、1コマンドで本来の作業画面に戻れるのが利点です。

使ってみて

複数の参照ファイルを開いて調査した後、結論が出たら:onlyで一気に画面を片付けてから本命のファイルに集中する、という流れが定着しています。閉じたファイルもバッファとして残っているので、必要になったら:lsやoldfilesですぐ呼び戻せて安心して使えます。

閉じたレイアウトを元に戻す

:only でウィンドウを1枚にしたあと、やっぱり元の分割に戻したいことがあります。分割の状態は取り消しの対象ではないので u では戻りません。

戻す可能性があるなら、実行する前にセッションとして保存しておきます。:mksession はウィンドウの分割・大きさ・開いているファイルをまとめて記録します。

:mksession! /tmp/layout.vim   " いまのレイアウトを保存
:only
:source /tmp/layout.vim       " 元のレイアウトに戻す

調べもので何枚も分割したあと、いったん1枚にして集中し、また戻る、という往復ができます。! を付けているのは、同じ名前のファイルがあっても上書きするためです。

hidden の設定で挙動が変わる

未保存の変更があるバッファを表示しているウィンドウを閉じようとすると、hidden の設定によって結果が変わります。無効なら閉じられずエラーになり、有効なら変更を保ったまま隠れた状態になります。

:set hidden?      " Vimの既定は nohidden、Neovimは hidden
set hidden

VimとNeovimで既定が違うので、両方を使っていると挙動の違いに戸惑います。hidden を有効にしておくと、保存していないファイルを気にせずウィンドウやバッファを切り替えられるようになります。隠れたバッファは :ls で確認できます。

閉じずに広げるという選択

集中したいだけなら、閉じる必要はありません。Ctrl-w _Ctrl-w | を続けて押すと、今のウィンドウが縦横とも最大になり、他は細い線のように縮みます。

Ctrl-w _        " 高さを最大に
Ctrl-w |        " 幅を最大に
Ctrl-w =        " 均等に戻す

この方法なら Ctrl-w = で元の分割に戻せます。あとで戻すつもりがあるなら、:only よりこちらのほうが扱いやすくなります。ウィンドウの操作はウィンドウ間の移動にまとめています。

まとめ

今のウインドウだけを残したいときはCtrl-w Ctrl-oまたは:on。閉じたウインドウのバッファは消えないので、気軽に使えます。

関連記事

← Vim研究所 トップへ戻る