43

I have list of buffers in vim. I can split buffer horizontally using :sb[N] where N is the buffer number. How can I split the buffer vertically ?

blacklife
  • 433
  • 1
  • 4
  • 4

4 Answers4

72

The vs and vsplit commands take a filename as an argument like :vs somefile to open a file in a vertical split.

To put an existing buffer in a split window you use the sb# command (where # is the buffer number). Splits in VIM default to horizontal, to change this, prefix your command with vert which forces a vertical split of the next split command.

:vert sb#

Where # is the buffer number

Andy Smith
  • 110
  • 1
  • 3
  • 13
kyrisu
  • 1,725
  • 13
  • 8
2

This is a command I created and added to my .vimrc to allow me to open a current buffer in a vertical split

command -nargs=1 Vsb call VsbFunction(<f-args>)

function VsbFunction (arg1)
  execute 'vert sb' a:arg1
endfunction
Brett Y
  • 326
  • 2
  • 5
1

You can use vim-fzf plugins and:

Similarly to {ctrlp.vim}{3}, use enter key, CTRL-T, CTRL-X or CTRL-V to open selected files in the current window, in new tabs, in horizontal splits, or in vertical splits respectively.

use :Buffers select and hit CTRL-V

zyfyy
  • 111
  • 2
0

As kirysu said, but additionally with "positioning the other split".

:vert rightbelow sb otherfile.txt

or

:vert bel sb otherfile.txt

... opens a existing buffer, named otherfile.txt, in a split "right below" the existing one.
In the case of vertical splitting, it means "right side of the existing buffer".

Here you can use the [tab]-key too, to let vim complete the buffer-name!

(see :help :vert too, for further "positioning"-commands)

tron5
  • 101
  • 1