質問

この共通のIDE機能が利用可能かどうか疑問に思っていました。

vsplitsplitを使用して、Vimを使用して多くのファイルを開くとします。その後、すべてを閉じます。

翌日、これらのファイルを回復したい。つまり、それぞれを(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

  

セッションはすべてのビューを保持します   ウィンドウ、およびグローバル設定。   セッションを保存できます   後でウィンドウレイアウトを復元する   同じように見えます。セッションを使用できます   異なるものをすばやく切り替える   プロジェクト、自動的にロード   その中で最後に作業していたファイル   プロジェクト。

GNU画面の使用を検討できます。つまり、ユーザーが単一のターミナルセッション内で複数の個別のターミナルセッションにアクセスできるようにするコマンドラインウィンドウマネージャーです。私にとっての主な利点は、セッションをデタッチし、ターミナルウィンドウを閉じ、後でセッションを再アタッチして、作業を続行できることです。

私が見つけた最良のアプローチは、vim-sessionプラグイン http:// githubを使用することです。 com / xolox / vim-session を追加してインストールできます:

Plugin 'xolox/vim-session'

.vimrcに、続いて:

:PluginInstall

このプラグインは複数のセッションをサポートします。名前でセッションを識別し、その名前でセッションを管理します。セッションを追加、削除、更新、一覧表示できます...

私はこれを数か月間使用しています。強くお勧めします。

この本に興味があるかもしれません:

http://www.swaroopch.com/notes/Vim#Download

これは、Vimの素晴らしさを示す例として最初に紹介したものの1つです。 ;)

また、<cr>は復帰を表します。

SessionMan http://www.vim.org/scripts/script。 php?script_id = 2010 より簡単な機能を提供します。 miniBufExplorerに注意してください。 vim_useでandrewによって作成された変更バージョンを使用しない限り、互換性がありません(それでも、半分しか互換性がありません)

私の解決策は以下の通りです。それらを.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>

より複雑に見えますが、保存およびロードするセッションが複数ある場合に非常に便利です。

P.S。
ここでは、セッションを保存およびロードするために、使い慣れた<Ctrl-S>および<Ctrl-O>ショートカットを採用しています。私見、これは<Fn>キーに手を差し伸べるよりも快適です。 ;-)

vim-obsession を使用することをお勧めします。デフォルトのmksessionよりもはるかに優れています。

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

  
      
  1. 現在ロードされているすべてのバッファをアンロードします。
  2.   
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top