NOTE: This answer reflects the first version of the question, before edits that made it more focused on a specific problem. Leaving this answer here in case it's useful to the original poster or others.
Resizing the terminal
You can give the :terminal
command a ++rows=20
or ++cols=100
argument to size it from the start. You can use :vertical
to open it in a vertical split if you like. For example:
:vertical rightbelow terminal ++cols=20
To get a thin terminal window on the right side of the screen.
See :help :terminal
for the full range of options taken by the :terminal
command. (Also, :help :vertical
, :help :rightbelow
, :help :resize
if you decide to create a split first and run the terminal on that window with ++curwin
.)
Remapping the window change key in the terminal
You can use :tnoremap
to create key bindings for the terminal. The terminal mappings are used in a terminal window, when typing keys for the job running in the terminal.
See :help :tnoremap
, more specifically :help mapmode-t
and :help terminal-typing
which describes a lot of the pre-defined key bindings, many of which using CTRL-W
as a prefix (CTRL-\
is also already a prefix) that you can consider to use if you don't want to introduce new special keys for the terminal mode.
Three-split treeview/...
Suggestion: You might want to consider using NERDTree rather than netrw, since NERDTree was primarily designed as a "project drawer" and perhaps fits the treeview role better than netrw.
You might want to read the somewhat popular Oil and Vinegar article, which talks about how the "project drawer" model doesn't fit Vim very well. (But don't worry too much about it, in practice NERDTree works quite well for most use cases, it might suit you well.)
Should I use GNU screen?
Personally, I think the built-in terminal is pretty nice and the fact you can set key bindings, have it in a split that doesn't span a full dimension, can yank and paste on it and you can start one on demand for a single command makes it very interesting compared to one running outside of Vim.
If you decide to use an external terminal window manager, I'd suggest you go with tmux rather than screen, tmux is more modern, more featureful and you'll likely find more tools (and more featureful, well maintained tools) integrating Vim with tmux rather than screen.
For example, there's vim-tmux-navigator to use the usual CTRL-W
key bindings to navigate between Vim windows and tmux panes more seamlessly.
So, again, my personal choice would be the built-in terminal... But if you decide to go with an external tool, look into tmux.
Hopefully you'll find my comments here useful! Your question is too broad so it's hard to address everything.
I guess my main advice is to get familiar with the :help
system in Vim, you can find a lot of useful information there.
Get familiar with the built-in terminal and see how much you can get from it.
Think twice before trying to completely reproduce the workflow you had from a previous IDE into Vim... You might get close to it, but maybe that's not the best, most efficient way to use Vim productively. So think about spending some time trying to learn the Vim way of solving specific problems, if you start by bringing your own, you won't have an opportunity to explore them.
Good luck! It's a journey, but a worthy one!