2

I'm a total beginner that sees vim as a potential simple IDE, (as well as a text editor).

I had several questions, but that was confusing, so I'll stick with just one already answered.

I like using the key to switch from panel to panel, but it doesn't seem to work for terminal buffers. Is there a command for this?

[edit] never mind, I've discovered that I don't want it like that.

Below is my configuration file.

~/.vimrc

" Switch syntax highlighting on when the terminal has colors or when using the
" GUI (which always has colors).
if &t_Co > 2 || has("gui_running")
  " Revert with ":syntax off".
  syntax on

  " I like highlighting strings inside C comments.
  " Revert with ":unlet c_comment_strings".
  let c_comment_strings=1
endif

" Directory tree configuration
let g:netrw_banner = 0
let g:netrw_liststyle = 3
let g:netrw_browse_split = 4
let g:netrw_altv = 1
let g:netrw_winsize = 25

" Number lines configuration and execution
highlight LineNr term=bold cterm=NONE ctermfg=DarkGrey
set number

" To put the terminal at the bottom 
set splitbelow

" Change window by pressing tab
noremap <Tab> <C-W>w

" Toggle to IDE mode
noremap ` :NERDTree<CR> <C-W>w :terminal<CR> <C-W>w :resize +10<CR>

" Mappings for dvorak keyboard layout
source ~/.livim
  • Welcome to Vi and Vim StackExchange! Your question is a little bit too much all over the place... Try to focus on a single problem for each question and ask multiple questions if you need it. It's very hard to try to answer your question because any answer is unlikely to cover everything (and you're unlikely to get more answers for the other parts.) Also, prefer to add your contents inline rather than link to a vpaste (I fixed that part for you.) I'll try to answer your question anyways, but please post follow ups as new questions. – filbranden Feb 23 at 15:24
  • 1
    I'll ask just one question then. I've been able to solve the first one, but a new issue arised. – Folatt Feb 23 at 15:25
2

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!

|improve this answer|||||
  • 1
    Thank you very much. I'll bet people are going to get confused here as I've deleted all the subquestions and created a new one. – Folatt Feb 23 at 16:06
  • @Folatt It's ok, since it took a while between my comment and my answer... In general, asking a new question is better than editing one to make a completely different one though. 😁 I'll edit my answer to indicate it reflects the first version of the question. I'll see if I can post a separate answer to your specific question now. – filbranden Feb 23 at 16:10
  • 1
    @Folatt btw I think you're now running into the "Oil and Vinegar" thing... Can I suggest that you look into whether NERDTree does what you want? It's likely it solves that problem for you... – filbranden Feb 23 at 16:16
  • 1
    @Folatt You can reposition the terminal with CTRL-W J or with :wincmd J. You can also open the terminal first and then the treeview. Windows will be split in the order they're opened. – filbranden Feb 23 at 16:47
  • 1
    I decided I actually wanted the 1||2-3 layout instead of 1|2--3, so it's all good now. – Folatt Feb 23 at 16:51

Not the answer you're looking for? Browse other questions tagged or ask your own question.