471

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

5 Answers 5

464

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
6
  • 15
    Really? I've never had to provide an N.
    – Cascabel
    Oct 5, 2009 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. Oct 6, 2009 at 3:35
  • 30
    -o is like :split, -O is like :vsplit Jan 21, 2014 at 10:06
  • @Cascabel -whatever[N] means that N is optional and can be omitted, I believe it derives from standard ebnf syntax Jul 24, 2018 at 17:21
  • 2
    @Cascabel -o without N works as documented. so omitting N solved the problem. I suspect they were literally doing something like vim -o[2] file1 file2 which is invalid syntax. Jul 27, 2018 at 17:11
495

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)

8
  • 13
    To switch screens, Press Ctrl-w and then up arrow or down arrow to switch screens. Oct 17, 2012 at 1:20
  • 9
    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, 2013 at 21:00
  • swapped order of down and up for Ctrl + W J(down) and Ctrl + W K(up)
    – pseyfert
    Nov 30, 2016 at 17:02
  • 1
    Thanks this helped me figure out how to move backwards, Ctrl + w left arrow. I always use ctrl + ww to cycle forward. If your on the bottom and need to access a file on the top quickly, and don't want to go forward, you need to move up first with ctrl + w up arrow before moving left(or right). Thanks. May 11, 2017 at 20:09
  • @Atav32 I was responding to a comment, not a question, and this is Superuser, not stack overflow. The comment used the wrong term and I asked a simple question in response in an attempt to politely point this out as you can't moderate comments and it's not wrong enough to warrant a flag. Plus it didn't work anyway, no matter what you call it.
    – user115145
    May 9, 2018 at 8:12
388

While running vim:

  1. :sp filename for a horizontal split
  2. :vsp filename or :vs filename for a vertical split
4
  • 74
    This doesn't answer the question raised...but it SURE helped me out :D Thanks!
    – Abel
    Mar 24, 2011 at 18:45
  • 8
    thanks, just what I was looking for. I also :set splitright
    – zack
    Aug 7, 2012 at 23:44
  • 4
    ctrl-ww for switching between splits Feb 17, 2014 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, 2016 at 17:14
23

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
2

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

1
  • 15
    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, 2012 at 19:16

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