我试图在VIM中从标签切换到另一个标签(可能与前一个标签不相邻)。是否有任何快捷方式,例如我们有 Ctrl - p / Ctrl - n 用于切换到相邻选项卡?
另外,我正在尝试编写一个键映射,它将一个变量作为函数的输入并执行操作。例如,假设我按 Ctrl - 5 并调用一个函数(由用户编写)并作为输入5给出,光标将转到选项卡5 (如果有任何第五个标签打开)。
你能否建议如何做到这一点?
答案 0 :(得分:78)
使用5gt
切换到标签5
:tabn [ext] {count}
{计数} GT
转到标签页{count}。第一个标签页有第一个。
您也可以将其绑定到密钥:
:map <C-5> 5gt
:imap <C-5> <C-O>5gt
(对于某些终端,映射Ctrl-<number>
可能不同/不可能。请考虑Alt-<number>
然后
答案 1 :(得分:19)
仅解决您的第一个问题,并在vim中引用help tabs
:
{count}gt Go to tab page {count}. The first tab page has number one.
{count}gT Go {count} tab pages back. Wraps around from the first one
to the last one.
即,键入3gt
转到第三个标签,3gT
从当前标签返回3个标签。
答案 2 :(得分:2)
仅用于共享键映射以直接跳转到特定选项卡。请将它们放入_vimrc并使其正常工作。
" Jump to particular tab directly
"NORMAL mode bindings for gvim
noremap <unique> <M-1> 1gt
noremap <unique> <M-2> 2gt
noremap <unique> <M-3> 3gt
noremap <unique> <M-4> 4gt
noremap <unique> <M-5> 5gt
noremap <unique> <M-6> 6gt
noremap <unique> <M-7> 7gt
noremap <unique> <M-8> 8gt
noremap <unique> <M-9> 9gt
noremap <unique> <M-0> 10gt
"INSERT mode bindings for gvim
inoremap <unique> <M-1> <C-O>1gt
inoremap <unique> <M-2> <C-O>2gt
inoremap <unique> <M-3> <C-O>3gt
inoremap <unique> <M-4> <C-O>4gt
inoremap <unique> <M-5> <C-O>5gt
inoremap <unique> <M-6> <C-O>6gt
inoremap <unique> <M-7> <C-O>7gt
inoremap <unique> <M-8> <C-O>8gt
inoremap <unique> <M-9> <C-O>9gt
inoremap <unique> <M-0> <C-O>10gt