Open last closed file in a new tab in Vim
LinuxVimViMacvimLinux Problem Overview
I know I can open the last closed (:q
) file in Vim by using :e#
. This will open the file in the current tab. How would I perform the same task but open the file in a new Vim tab. Also I am interested in how to open the file in a new split instead of the current tab.
Linux Solutions
Solution 1 - Linux
#
is simply an Ex special character that will be replaced with the name of the alternate file. Do an :ls
, and the alternate file will be marked with a #
there also.
#
can similarly be used with :tabnew
and split
. In the examples below I'll use :tabe
in place of :tabnew
as :tabe
is a shorter alias for :tabnew
(search for either in the help docs):
- To open the alternate file in a new tab:
:tabe#
- To open the file in a new split:
:split#
; this can be abbreviated to:sp#
, and:vsp#
for a vertical split.
Using a buffer number from :ls
, e.g. buffer number 5 you can also:
- open the buffer in a split with
:sp#5
; alternately:sb5
if theswitchbuf
option contains thenewtab
specifier - see:help switchbuf
- open the buffer in a vertical split with
:vsp #5
(there is no:vsb
) - open the buffer in a new tab with
:tabe #5
Solution 2 - Linux
You don't necessarily have to leave normal mode to open the alternate buffer in a new window:
CTRL-W ^ opens the alternate buffer in a horizontal split.
CTRL-W T opens the current buffer in a new tab (Shift-T, that is).
So, one solution to your title question is the following combo.
CTRL-W ^, CTRL-W T: opens the alternate buffer in a new tab.
Note that for the caret "^" in the first command you don't have to release the Control key and you don't have to press Shift, just hold down CTRL then strike W and 6 (where the caret is located on many English keyboard layouts).