12

I know about the option :!ls, but I would like to use one of the splitted interface ( after is used :sp) as a command line window. Is this possible? If it is, how do I do it?

  • 3
    There are plugins and/or patches to accomplish that. But you will sooner or later experience some quirks. My suggestion is to use a full-featured lightweight terminal instead, or screen/tmux. – Marco Oct 8 '12 at 15:52
  • vim8 has terminal mode built in.. see here: superuser.com/a/1312655/658319 – alpha_989 Apr 10 '18 at 15:29
9

Unlike Emacs, Vim tries to be a bit more minimal when it comes to working with the shell. It does not have an option to include the interactive shell inside one of it's tabs or buffers.

Although there are workarounds for this. Just like you, I really like to have a bash window in the same terminal session as I have Vim running. It is super useful while editing source files. In my case I really like to have the Ruby REPL environment running so I can test out statements before I put them in the source files.

I use Tmux to accomplish the split window. In Tmux I create a split window (default key is ctrl+b, "). This will open 2 interactive shell sessions just like a split window in Vim. Then I run Vim in one of the sessions and I'm all set.

You can see from the picture below that I have split the window horizontally with bash on top and Vim on bottom.

enter image description here

I also use Tmux to support pair programming with others. You can read more about my setup on my blog at http://jjasonclark.com/Remote-Pairing-with-SSH-and-Tmux-on-a-Mac.

| improve this answer | |
9

Vim 8 has terminal mode built in.

You can type :ter to get access to the terminal.

To navigate through the commands in your default shell use j,k.

You can get more information by typing :h ter in VIM8.

Note: your VIM8 must have +terminal for this to work.

| improve this answer | |
8

Not sure if you were looking for a GNU screen solution, or a solution using Vim's built-in splits, but if you're looking for the latter, this worked for me:

vim -O file_a.js file_b.js

That a opens both files with a vertical split. For a regular (horizontal split), just use a lower case -o instead.

P.S. Ctrl+w, w to switch between the two (I find it a good way to differentiate screen splits and vim splits).

| improve this answer | |
  • 5
    Though this doesn't answer the original question, this answer did answer my google search query that got me here. :) – Mihai Alexandru Bîrsan Jun 26 '17 at 18:53
  • Ditto - thanks! – CaseyR Jan 7 at 13:03
6

Have you tried screen? Any reason that wouldn't work out for you?

| improve this answer | |
  • could you provide details on how to implement the soultion with screen? – MPA95 Apr 15 at 13:33
3

I was looking for this for long and as much as I can say nothing good is really possible. I have tried many plugins/addons for vim but no one worked as I wanted.

This one is good though: ConqueTerm

However it has some inconsistency with colors. Give it a try maybe it works out for you.

| improve this answer | |
1

You can use NeoVim, it has a built in terminal mode similar to emacs (although very new) - this lets you have it in a window like any other vim buffer

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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