Vim Tips Wiki
m (minor reword and spelling correction)
(Change <tt> to <code>, perhaps also minor tweak.)
 
Line 3: Line 3:
 
|previous=1332
 
|previous=1332
 
|next=1334
 
|next=1334
|created=September 19, 2006
+
|created=2006
 
|complexity=basic
 
|complexity=basic
 
|author=mz
 
|author=mz
Line 11: Line 11:
 
|category2=
 
|category2=
 
}}
 
}}
By default when a tab is closed, if another tab is open to the right of the tab that was just closed, it will become the "in focus" or current tab. However, when editing quickly this does not provide symmetry with the <tt>:tabopen</tt> command, because the <tt>:tabopen</tt> command opens a new tab to the right, and the <tt>:tabclose</tt> does restore focus to the original tab upon closing. With the following command in the .vimrc file, when editing a file, if the user needs to do something quickly in a new tab, they can use a mapping to close it and return to the original tab.
+
By default when a tab is closed, if another tab is open to the right of the tab that was just closed, it will become the "in focus" or current tab. However, when editing quickly this does not provide symmetry with the <code>:tabopen</code> command, because the <code>:tabopen</code> command opens a new tab to the right, and the <code>:tabclose</code> does restore focus to the original tab upon closing. With the following command in the .vimrc file, when editing a file, if the user needs to do something quickly in a new tab, they can use a mapping to close it and return to the original tab.
   
 
<pre>
 
<pre>
Line 18: Line 18:
   
 
==Comments==
 
==Comments==
The following accomplishes the same as above, but if a tab is not being closed, will just call the <tt>:q</tt> command.
+
The following accomplishes the same as above, but if a tab is not being closed, will just call the <code>:q</code> command.
   
 
<pre>
 
<pre>

Latest revision as of 06:21, 13 July 2012

Tip 1333 Printable Monobook Previous Next

created 2006 · complexity basic · author mz · version n/a


By default when a tab is closed, if another tab is open to the right of the tab that was just closed, it will become the "in focus" or current tab. However, when editing quickly this does not provide symmetry with the :tabopen command, because the :tabopen command opens a new tab to the right, and the :tabclose does restore focus to the original tab upon closing. With the following command in the .vimrc file, when editing a file, if the user needs to do something quickly in a new tab, they can use a mapping to close it and return to the original tab.

noremap <silent><C-S-w> :if tabpagenr() != tabpagenr('$')<CR>:tabclose<CR>:if tabpagenr() > 1<CR>:tabprev<CR>:endif<CR>:else<CR>:tabclose<CR>:endif<CR>

Comments[]

The following accomplishes the same as above, but if a tab is not being closed, will just call the :q command.

function! CloseSomething()
  if winnr("$") == 1 && tabpagenr("$") > 1 && tabpagenr() > 1 && tabpagenr() < tabpagenr("$")
    tabclose | tabprev
  else
    q
  endif
endfunction
map <C-x> :call CloseSomething()<CR>