I tried these pseudo-codes, but these are just 1 time thing and won't
change over time...couldn't figure out a good way.
;if more than one tab, don't hack
if tabpagenr("$") > 1
unmap gt
unmap gT
;otherwise , if there is one tab, use gt,gT,Ngt to switch between buffers
else
if v:count == 0
map gt :bn<cr>
map gT :bp<cr>
else
map gt :<C-U>exec "b" . v:count<cr>
endif
endif
On Thu, Dec 12, 2013 at 11:23 PM, Nikolay Pavlov <[email protected]> wrote:
>
> On Dec 13, 2013 1:56 AM, "ping song" <[email protected]> wrote:
> >
> > furthermore, I want to overide Ngt to :bN<enter>, when there is only
> one tab...
> > this looks requiring N being extracted and used as a parameter of the
> function...
> > how to implement that?
>
> Use v:count or v:count1. Knowing that "2:" results in ":.,.+1" you may
> also extract count using ":function Func() range" or ":command-range".
>
> >
> > thanks!
> >
> >
> > On Thu, Dec 12, 2013 at 11:29 AM, ping song <[email protected]>
> wrote:
> >>
> >> thanks. this is nice. just one more <enter> in the end.
> >>
> >> noremap <silent> ,l :call <SID>switch()<enter>
> >>
> >> reading about <SID> again...(I figured it out ever)
> >>
> >>
> >>
> >> On Thu, Dec 12, 2013 at 4:40 AM, Paul Isambert <[email protected]>
> wrote:
> >>>
> >>> "ping song" <[email protected]>:
> >>> > currently I have a map to quickly switch between 2 tabs:
> >>> >
> >>> > nmap ,l :exe "tabn “.g:lasttab<CR>
> >>> > au TabLeave * let g:lasttab = tabpagenr()
> >>> >
> >>> > it works nice.
> >>> >
> >>> > but I'm thinking to extend that to another scenario, that if I got
> >>> > only one tab left but still have multiple buffers, the same map will
> >>> > toggle between the last 2 buffers used instead of tabs.
> >>> >
> >>> > how to archive this ?
> >>>
> >>> Check whether there exists more than one tab page; if not, use ":b #"
> as
> >>> indicated by Marc:
> >>>
> >>> function! s:switch()
> >>> if tabpagenr("$") > 1
> >>> exe "tabnext" g:lasttab
> >>> else
> >>> b #
> >>> endif
> >>> endfunction
> >>> noremap <silent> ,l :call <SID>switch()
> >>>
> >>> Best,
> >>> Paul
> >>>
> >>> --
> >>> --
> >>> You received this message from the "vim_use" maillist.
> >>> Do not top-post! Type your reply below the text you are replying to.
> >>> For more information, visit http://www.vim.org/maillist.php
> >>>
> >>> ---
> >>> You received this message because you are subscribed to the Google
> Groups "vim_use" group.
> >>> To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected].
> >>> For more options, visit https://groups.google.com/groups/opt_out.
> >>
> >>
> >
> > --
> > --
> > You received this message from the "vim_use" maillist.
> > Do not top-post! Type your reply below the text you are replying to.
> > For more information, visit http://www.vim.org/maillist.php
> >
> > ---
> > You received this message because you are subscribed to the Google
> Groups "vim_use" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected].
> > For more options, visit https://groups.google.com/groups/opt_out.
>
> --
> --
> You received this message from the "vim_use" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google Groups
> "vim_use" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.