Vimのセッションとは
Vimmerの中でもセッションを使っていないもしくは知らないという方は多いと思います。セッションとは開いていたウィンドウと設定を保存しておき、後でセッションを復元することで保存した時のウィンドウレイアウトなどの状況を即座に再現出来る機能です。
セッションという言葉の割にシンプルで便利な機能なので今回Vimのセッション管理についてまとめたいと思います。
Vimのセッションを使ってみる
まずは普段の作業さながらに複数のファイル、複数のウィンドウを開いてみて下さい。そうしたら下記のExコマンドを実行して下さい。
:mksession ~/session.vim
※もしくは
:mks ~/session.vim
次に、一度Vimを終了してから下記のコマンドを実行して下さい。
$ vim -S ~/session.vim
※もしくはvimを立ち上げてから
:source ~/session.vim
使い方はこれだけです。一コマンドでセッションの保存や再開が出来ます。
プラグイン
セッション系のプラグインもいくつか存在しているようです。スターの数も安定しています。
fzfと組み合わせる
自分は先述のプラグインを入れずに、fzfと組み合わせてファジーファインダーでセッションを探せるようにだけしています。.zshrc
に下記のコードを記述します。
fvis() {
local file
file=$(find ~/.vim/sessions | fzf)
vi -S "$file"
}
fvis
と入力すると~/.vim/sessions
ディレクトリに保存したセッションファイル群からfzfで曖昧検索してセッションを開けるようになったかと思います。
バッファ管理
Vimセッションを使うようになると分るのですが、結構起動に重さを感じるかと思います。探索するファイルが増えるほど時間が増加していきます。そのためセッションを保存する際に不要なバッファは消した方が良いです。
:bd [0-9] | 指定した番号のバッファを削除 |
:[0-9],[0-9]bd | 指定した範囲の番号のバッファを削除 |
:bd [range] | 指定した範囲のバッファを削除 |
終わりに
セッションを使う前までは作業を中断して家に帰る時などに、編集した一連のファイルを保存・終了してからVimを落としていました。そして作業再開する時にはまた一々ファイルを開くという面倒な工程を当たり前のように行っていました。
Vimは奥が深いので今回のセッションみたいに見過ごしている機能が多くあります。いくらVimGolfをやっても毎回学びがあるくらいです。今年でVimも30周年を迎えたそうですがその歴史の分だけ機能があるということなのでしょうか。