voldikss / vim-floaterm

:computer: Terminal manager for (neo)vim
MIT License
2.5k stars 81 forks source link

[Feature Request] Floaterm Restore on Session Restore #213

Closed TheCedarPrince closed 3 years ago

TheCedarPrince commented 3 years ago

Hi @voldikss - thanks for the wonderful tool! I use it everyday. In fact, that is why I am opening this issue. :)

I make extensive use of sessions while working with (neo)vim and I also use floaterms significantly. Would it be possible to add the capability of saving floaterm information to a session file such that floaterms, with specific execution commands, would automatically start up upon session restore? This is similar to #191 and it partially implements my idea but it would be great to have this functionality be customized to a session by session basis.

Let me know if you have any questions or if this is outside the scope of the project! Thank you!

voldikss commented 3 years ago

Hi @TheCedarPrince, in my personal opinion terminal session is useless: it can not save your running job which could be the only thing we want to store. Actually there are no quite demand to do that because we can easily open a floaterm.

Besides, I am quite not familiar with how to save and restore sessions. Though I sometimes use session command provided by coc.nvim.

I am going to close this issue but if you have any thoughts feel free to comment. I'll consider it in the future if I have free time and find it useful.

TheCedarPrince commented 3 years ago

Hey @voldikss - that's reasonable. My use case may be somewhat niche as my setup is as follows:

I use tmux to start a workspace. From there, I create my windows and set-up just the way I want them in tmux. I utilize tmux-resurrect and tmux-continuum to save and reload my window layouts and use vim-obsession to also have tmux-resurrect automatically reload my vim sessions upon reboot of the tmux session. So for me, vim sessions are invaluable as I don't have to worry about my workspace ever as it will persist from each work period to work period regardless of whether I have to shut down my computer.

My setup looks like this:

image

Addendum: The ideal scenario would be that when my sessions get restored from their associated Session.vim file, each floaterm gets restored to a specific type. For example, with tmux-resurrect, each window would get restored and if, say I was in a Python REPL, that Python REPL would get restored (not its state, but it would restart that REPL session).