400

There must be a way, something like this:

vim -[option] <file-list>

to open files from command prompt and not from within Vim.

  • split windows vertically or/and horizontally
  • in separate tabs

migrated from stackoverflow.com Oct 11 '12 at 19:30

This question came from our site for professional and enthusiast programmers.

389

I'm assuming you mean from the command line. From vim --help:

-o[N]                Open N windows (default: one for each file)
-O[N]                Like -o but split vertically

So type this to open files split horizontally, for example:

vim -o file1.txt file2.txt file3.txt
  • 14
    Really? I've never had to provide an N. – Cascabel Oct 5 '09 at 20:03
  • 3
    Indeed, it seems to be something in my .vimrc causing the trouble. If I move it aside, -o without N works as documented. – Laurence Gonsalves Oct 6 '09 at 3:35
  • 22
    -o is like :split, -O is like :vsplit – Evgeni Sergeev Jan 21 '14 at 10:06
  • @Cascabel -whatever[N] means that N is optional and can be omitted, I believe it derives from standard ebnf syntax – user3338098 Jul 24 '18 at 17:21
  • @user3338098 I think there may have been a deleted comment here; Laurence's "Indeed..." comment implies that it was causing problems when omitted. – Cascabel Jul 24 '18 at 17:32
441

Ctrl+W, S (upper case) for horizontal splitting

Ctrl+W, v (lower case) for vertical splitting

Ctrl+W, Q to close one

Ctrl+W, Ctrl+W to switch between windows

Ctrl+W, J (xor K, H, L) to switch to adjacent window (intuitively up, down, left, right)

  • 10
    To switch screens, Press Ctrl-w and then up arrow or down arrow to switch screens. – Eric Leschinski Oct 17 '12 at 1:20
  • 7
    @EricLeschinski, I prefer ctrl+w ctrl+w to cycle through windows as arrow keys feel a little anti-vi – Lucas Jan 27 '13 at 20:39
  • 6
    Ah but you can use regular vim movements, e.g. ctrl+w j to jump to the buffer below the current one. – mitjak Oct 4 '13 at 21:00
  • 4
    :q also closes window – Alexandre Bourlier Dec 29 '14 at 16:52
  • 1
    Ctrl+w to switch windows doesn't seem to work on mac terminal. Ctrl+w,w does though – slashdottir Jun 26 '15 at 21:23
325

While running vim:

  1. :sp filename for a horizontal split
  2. :vsp filename or :vs filename for a vertical split
  • 61
    This doesn't answer the question raised...but it SURE helped me out :D Thanks! – Abel Mar 24 '11 at 18:45
  • 1
    Many thanks for it. It's exactly what I need it! – mapcuk Mar 16 '12 at 8:43
  • 7
    thanks, just what I was looking for. I also :set splitright – zack Aug 7 '12 at 23:44
  • 4
    ctrl-ww for switching between splits – Nerrve Feb 17 '14 at 9:29
  • :vsplit filename is the same as :vsp filename and :vs filename, but perhaps a tiny bit easier to remember for some people – b_dev Sep 13 '16 at 17:14
21

another interested trick is the CLI -p argument - which opens them in separate tabs for recent versions of vim and gvim.

gvim -p file1.txt file2.txt
1

Another useful trick that I just found out, is that you can use wildcards in the filelist to open multiple files. Say you want to open file1.txt, file2.txt, and file3.txt all in separate tabs but don't feel like typing that all out you can just do:

vim -p file*

I frequently find myself needing to open a lot of files with a similar prefix, and this has been quite helpful

  • 12
    That does not have to do with Vim itself but with the shell you are using. It is the shell that expands globs. – Kazark Aug 24 '12 at 19:16

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