この一般的なIDE機能が利用できるかどうか疑問に思っていました。
vsplit
とsplit
を使用して、Vimを使用して多くのファイルを開くとします。次に、すべてを閉じます。
翌日、それらのファイルを復元したいと思います。つまり、それぞれを(split
とvsplit
を使用して)再度開く必要なく、それらが開かれた方法を回復します。
それは可能ですか?
更新:
mksession!
およびsource
コマンドを使用して、.vimrc
ファイル内のマッピングコマンドを実行します。マッピングをパラメータ化して特定のファイルを書き込む方法はありますか?
例えば:
map <F2> :mksession! ~/vim_session @INSERT_HERE<cr> "Save session to @INSERTHERE file
前もって感謝します
:mksessionと:sourceを使用して一連のキーにマッピングし、保存と復元を簡単に行うことができます。以下は、F2とF3を使用する.vimrcの例です。
map <F2> :mksession! ~/vim_session <cr> " Quick write session with F2
map <F3> :source ~/vim_session <cr> " And load session with F3
:mksession
コマンド、作成 session
:
セッションは、すべてのウィンドウのビューとグローバル設定を保持します。セッションを保存でき、後で復元したときにウィンドウのレイアウトは同じに見えます。セッションを使用すると、さまざまなプロジェクトをすばやく切り替えて、そのプロジェクトで最後に作業していたファイルを自動的にロードできます。
私が見つけた最良のアプローチは、vim-sessionプラグイン http://github.com/xolox/vim-session を使用することです。
Plugin 'xolox/vim-session'
あなたの.vimrcに、続いて:
:PluginInstall
このプラグインは複数のセッションをサポートします。名前でセッションを識別し、その名前で管理します。セッションは、追加、削除、更新、一覧表示などができます。
私はこれを数か月間使用しています。強くお勧めします。
GNU Screen の使用を検討できます。つまり、ユーザーが単一のターミナルセッション内で複数の個別のターミナルセッションにアクセスできるようにするコマンドラインウィンドウマネージャーです。私にとっての主な利点は、セッションを切り離し、ターミナルウィンドウを閉じ、後でセッションを再接続して作業を続けることができることです。
私の解決策は以下のとおりです。それらを.vimrcファイルに入れます。 HTH。
" session related.
" Default session is located `~/.session_'. The suffix `_' is a dirty
" solution, just like the one-element Tuple `(Tuple_eliment,)' in Python..
cnoremap <C-O> source ~/.session_
cnoremap <C-S> mksession! ~/.session_
nnoremap <silent> <C-S><C-S> :mksession! ~/.session_ <CR>
より複雑に思われますが、保存してロードするセッションが複数ある場合は非常に便利です。
追伸.
ここでは、おなじみの<Ctrl-S>
および<Ctrl-O>
ショートカットを使用して、セッションを保存およびロードします。私見、これは<Fn>
キーに手を差し伸べるよりも快適です。 ;-)
あなたはこの本に興味があるかもしれません:
http://www.swaroopch.com/notes/Vim#Download
これは、Vimの素晴らしさを示す最初のいくつかの例の1つです。 ;)
また、<cr>
はキャリッジリターンの略です。
SessionMan http://www.vim.org/scripts/script.php?script_id=201 より簡単な機能を提供します。 miniBufExplorerに注意してください。 andmがvim_useで作成した修正バージョンを使用しない限り、互換性はありません(それでも、互換性は半分しかありません)。
Hgmnzの回答に基づいており、更新のために拡張しています。
<cr>
マッピングから実行すると、コマンドモードになり、コマンドが終了します。
map <F2> :mksession! ~/<will stop here and you can type>
コマンドモードで%と入力してTabキーを押すと、現在のファイルの絶対パスに展開されます。%:p:hと入力してTabキーを押して現在のファイルに展開することもできますファイルのディレクトリ
各セッションを作業ディレクトリに保存することもできます。ローカルバッファディレクトリを使用すると、作業ディレクトリに複数のセッションを使用できます。
map <F2> :mksession! ./.vim_sessions <cr> " Will save session to current buffers directory.
map <F3> :source ./.vim_sessions <cr>
:lcd " Changes the current's buffer directory
現在ロードされているすべてのバッファをアンロードするため、セッションのリロードにも注意してください( http://vimdoc.sourceforge.net/htmldoc/starting.html#%3Amksession )
- 現在ロードされているすべてのバッファをアンロードします。
vim-obsession を使用することをお勧めします。デフォルトのmksession
よりもはるかに優れており、必要なことを行っている間は邪魔になりません。