Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

vimでウィンドウやタブの状態を自動保存/復元する方法

$
0
0

PC再起動したいけど今開いてるファイルをまた開き直すのめんどくさい…

今日の作業は終わったからvim閉じたいけど次作業する時今の状態復元したいからvim閉じれない…

vimmerなら一度は思った事があるはずです。

この記事を読めばそんなことにもう悩まされることはありません!ウヒョー

まずどういう事が出来るようになるのか、gifで見てみましょう

何が行われてるかというと

  • 1分間に1回、状態を自動保存
  • :qa等でvimを辞める時、状態を自動保存
  • プロジェクトのルートディレクトリで引数なしでvimを起動すると自動的に状態を復元

が行われてます。

状態はvimのsessionという機能で保存してます。

sessionは標準のvimで:mksessionで作成出来るのですが、今回はその:mksessionをラップしたプラグインを使用して実現しています。

設定方法

プラグインインストール

VimL
NeoBundle 'xolox/vim-session', {
            \ 'depends' : 'xolox/vim-misc',
          \ }

プラグインの設定

VimL
" 現在のディレクトリ直下の .vimsessions/ を取得 lets:local_session_directory = xolox#misc#path#merge(getcwd(),'.vimsessions')" 存在すればif isdirectory(s:local_session_directory)" session保存ディレクトリをそのディレクトリの設定letg:session_directory =s:local_session_directory
" vimを辞める時に自動保存letg:session_autosave ='yes'" 引数なしでvimを起動した時にsession保存ディレクトリのdefault.vimを開くletg:session_autoload ='yes'" 1分間に1回自動保存letg:session_autosave_periodic =1elseletg:session_autosave ='no'letg:session_autoload ='no'endif
unlet s:local_session_directory

この設定によって

vimを起動したディレクトリ直下に.vimsessionsディレクトリがあればそれをsession保存ディレクトリとして設定する

.vimsessionsディレクトリのdefault.vimが開かれる

という流れが実現します

自動保存/復元するディレクトリの設定

Bash
$ cd /path/to/projects/root/directory/
$ mkdir .vimsessions
$ vim

vim起動後、:SaveSessionを実行すれば、.vimsessions/にdefault.vimが作成され、自動保存/復元が可能になります!

おまけ

詳しい情報は以下のIssuesを見れば分かります


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>