Vim操作方法

[Vim問題] ウインドウを分割する方法は何種類?

この記事では、Vim / neovim でプラグインを使わずに「ウインドウを分割する」ためのキーバインドとコマンドについて、ご紹介します。

[解答] 4種類

考え方は色々ありますが、大まかに分けると次の4種類になります。

  • カレントウインドウ(カーソルがあるウインドウ)を水平分割する
  • カレントウインドウ垂直分割する
  • 新しいウインドウ(バッファ)を水平分割で開く
  • 新しいウインドウ垂直分割で開く

それぞれがキーバインドでもコマンドでも実現できます。

Vimウインドウ分割1. カレントウインドウを水平分割する

(ノーマルモード)
Ctrl-w s
Ctrl-w Ctrl-s
Ctrl-w Ctrl-S
:split
:sp

5種類もあり、キーバインドが3種類、コマンドが2種類です。

コマンドであれば、ウインドウサイズやオプションを指定したりすることも可能です。

個人的には、Ctrl-w Ctrl-s がよく使いますね。

Vimウインドウ分割2. 新しいウインドウを垂直分割する

(ノーマルモード)
Ctrl-w v
Ctrl-w Ctrl-v
Ctrl-w Ctrl-V
:vsplit
:vs

こちらも5種類もあり、キーバインドが3種類、コマンドが2種類です。

同じくコマンドであれば、ウインドウサイズやオプションを指定したりすることも可能です。

個人的には、Ctrl-w Ctrl-v がよく使いますね。

Vimウインドウ分割3. 新しいウインドウを水平分割する

(ノーマルモード)
Ctrl-w n
Ctrl-w Ctrl-n
Ctrl-w Ctrl-N
:new

こちらは4種類で、キーバインドが3種類、コマンドが1種類です。

やはりこちらもコマンドであれば、ウインドウサイズやオプションを指定したりすることも可能です。

やっぱり個人的には、Ctrl-w Ctrl-n がよく使いますね。

Vimウインドウ分割4. 新しいウインドウを垂直分割する

(ノーマルモード)
:vnew
:vne

こちらはコマンドが2種類で、実質は1種類です。

このコマンドに続けて、ウインドウサイズやオプションを指定したりすることも可能です。

解説

ウインドウ分割は、Vim / neovim を使う上で非常によく利用する機能の一つです。水平垂直それぞれで自由自在に分割できると、利便性の高い画面構成で作業をすることができます。

また、コマンドで分割する場合のオプションを覚えておくと、何ステップかの手順が削減できる一方、色々ありすぎて学習コストが高いのが難点です。

慌てず、この記事のように一つずつ覚えて徐々にバリエーションを増やしていきましょう。

このVimコマンドの補足情報

  • 利用頻度4.0
  • 便利さ5.0
  • 覚え易さ4.0

関連するVimヘルプ

Vim のヘルプでは下記のように解説されています。

CTRL-W s                                                CTRL-W_s
CTRL-W S                                                CTRL-W_S
CTRL-W CTRL-S                                           CTRL-W_CTRL-S
:[N]sp[lit] [++opt] [+cmd] [file]                       :sp:split
                カレントウィンドウを2つに分割する。その結果、2つの表示領域に同
                じファイルが表示されるようになる。

                新しいウィンドウの高さはNになる(デフォルトの高さはカレントウィ
                ンドウの高さの半分)。新しいウィンドウの場所を確保するため、カ
                レントウィンドウの高さは低くなる(‘equalalways’ オプションが
                セットされていて、かつ ‘eadirection’ の値が “hor” でない場合、
                他のウィンドウの中でカレントウィンドウか新しいウィンドウより大
                きいものがあれば、そのウィンドウも小さくなる)。

                [file] が与えられている場合は新しいウィンドウで編集される。ど
                のバッファでもロードされていない場合、読み込まれる。そうでなれ
                ければ新しいウィンドウは既にロードされたバッファを使用する。

                Note: CTRL-S は端末によっては使用できない。また、それ以上の入
                力をブロックしてしまうかもしれない。続けるためにはCTRL-Qを使う
                こと。
++opt+cmd も参照のこと。
E242
                自動コマンドでウィンドウを分割するときは注意すること。他のウィ
                ンドウレイアウトを変更しているときにウィンドウレイアウトが混乱
                する場合がある。

CTRL-W CTRL-V                                           CTRL-W_CTRL-V
CTRL-W v                                                CTRL-W_v
:[N]vs[plit] [++opt] [+cmd] [file]                      :vs:vsplit
:splitと同様、ただし垂直分割する。次のすべてに当てはまる場合、
                ウィンドウは水平に広げられる:
                1. 幅が指定されていない。
                2. ‘equalalways’ がセットされている。
                3. ‘eadirection’ が “ver” でない。
                4. 他のウィンドウの中でカレントウィンドウか新しいウィンドウよ
                   り幅が広いものがある。
                Note: 他の局面ではCTRL-QはCTRL-Vと同じだが、ここではそうでな
                い。

CTRL-W n                                                CTRL-W_n
CTRL-W CTRL_N                                           CTRL-W_CTRL-N
:[N]new [++opt] [+cmd]                                  :new
                新しいウィンドウを作成して空のファイルの編集が始まる。新しい
                ウィンドウの高さはNになる(デフォルトの高さはカレントウィンドウ
                の高さの半分)。新しいウィンドウの場所を確保するため、カレント
                ウィンドウの高さは低くなる。(‘equalalways’ オプションがセット
                されていてかつ ‘equalalways’ オプションが “hor” でない場合、他
                のウィンドウの高さも低くなる)。++optと +cmd も参照のこと。
‘fileformats’ オプションが空でない場合は、与えられた最初の
                フォーマットが新しいバッファにも使用される。
‘fileformats’ オプションが空の場合は、カレントバッファの
‘fileformat’ が使用される。これは引数++optによって上書きされ
                うる。
                自動コマンドはこの順で実行される:
                1. カレントウィンドウに対する WinLeave
                2. 新しいウィンドウに対する WinEnter
                3. カレントバッファに対する BufLeave
                4. 新しいバッファに対する BufEnter
                この動作は、はじめに “:split”、次に “:enew” コマンドを実行した
                場合と同じ動作である。

:[N]vne[w] [++opt] [+cmd] [file]                        :vne:vnew
:newと同様だが、垂直分割する。‘equalalways’ がセットされ、
‘eadirection’ が “ver” でないならば、幅が指定されない限りウィ
                ンドウは水平に広げられる。

windows – Vim日本語ドキュメント

こちらは、Vim上では下記のコマンドでヘルプを確認できます。

:help CTRL-W_s
:help CTRL-W_S
:help CTRL-W_CTRL-S
:help :sp
:help :split
:help CTRL-W_CTRL-V
:help CTRL-W_v
:help :vs
:help :vsplit
:help CTRL-W_n
:help CTRL-W_CTRL-N
:help :new
:help :vne
:help :vnew

ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。

Vim関連の参考書籍

こちらの書籍が参考になります。


Vim/neovim関連の書籍で、もっとも評判が良くてバイブルと呼んでる人もいる一冊です。Vim/neovimのバージョンに依存しない沢山のTips形式で、その表題通りに「思考のスピードで編集」できるようになるノウハウが詰まっています。その高い評価は Amazon のレビューからも分かる通りです。Vimmer なら必ず一度は読んでおいて間違いありません。


こちらもVim関連の書籍で評価が高い書籍の一冊です。vim-jpで見かける上級Vimmer(Vimサポーターズ)の皆様による、Vimを実践で使ったノウハウからプラグイン関連の情報が詰まっています。日本の Vim界隈を知る上でも是非一読しておきたい一冊です。

Vim/neovim の設定ファイルやプラグインなど、Vim script に関するノウハウがいくつも詰まった一冊です。日本で Vim Script をここまで深く解説している唯一の書籍と言えます。Vim力を伸ばしたいと考えるなら、絶対に避けては通れない書籍でしょう。

プロフィール
管理人
Vim太郎

Vim力アップして、そろそろ上級 Vimmer の仲間入りしたいIT系エンジニアの端くれです。読んでくる訪問者の皆様と一緒に、Vim力を上げていくことができる記事が書ければと考えています。

\フォローする/
\ シェアする /
\フォローする/
関連記事
Vim入門
タイトルとURLをコピーしました