如果我想使用vim选项卡而不是gnome-terminal选项卡,请键入
:tabn
和:tabp
非常麻烦。我可以将它们映射到键盘快捷键,但这仍然比直接使用Alt + 4跳到选项卡4方便得多。是否有更快的方法在vim中切换选项卡?
#1 楼
下一个标签:gt上一个标签:gT
带编号的标签:nnngt
#2 楼
为什么不利用领导者(我的领导者已映射到Space):" Go to tab by number
noremap <leader>1 1gt
noremap <leader>2 2gt
noremap <leader>3 3gt
noremap <leader>4 4gt
noremap <leader>5 5gt
noremap <leader>6 6gt
noremap <leader>7 7gt
noremap <leader>8 8gt
noremap <leader>9 9gt
noremap <leader>0 :tablast<cr>
您可以使用以下设置在当前和最后一个活动选项卡之间进行切换(此处它映射到Ctrl + L,即
<c-l>
):" Go to last active tab
au TabLeave * let g:lasttab = tabpagenr()
nnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>
vnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>
评论
您需要au TabLeave *让g:lasttab = tabpagenr()才能使c-l工作:stackoverflow.com/questions/2119754/…
– Ciro Santilli郝海东冠状病六四事件法轮功
14-10-16在12:31
我要为gT和gt添加
–布伦登
16年4月7日在20:13
对于表达的OP需求,我认为这个答案是最合适的。
–阿德里安
20-2-20在11:56
#3 楼
这是我发现的最简单的方法,可以更快,更简单地在选项卡之间切换。在.vimrc中添加下一行并享受它,这里有更多关于vim标签的技巧。
nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>
现在您可以使用Ctrl←左移并按Ctrl →往右走。
或者只是使用:1gt转到选项卡1,2gt转到选项卡2,3gt转到选项卡3,依此类推...现在您有了主意。 />
评论
我认为这是最好的答案。十分方便。我只是在OS X中禁用了这些系统键绑定,以使其独立于系统。
–LéoLéopoldHertz준영
16年5月14日下午5:47
使用箭头键会使您减速。我让他们残疾
–问与学
16年7月19日在5:03
是的,最好的答案!
– Vivandiere
16年9月9日在18:08
可悲的是,“ Ctrl”在vmplayer中给我带来了问题,因此我将键改为“ Backspace”和“ Enter”。
–鲍里斯·达彭(BorisDäppen)
17年7月13日在11:30
Mac用户:您可能需要禁用默认的“任务控制”空格键盘快捷键:stackoverflow.com/questions/15719135/…
– 4Z4T4R
17年8月29日在22:52
#4 楼
因为我在Mac上而不是使用MacVim(但在终端中使用普通vim),所以在组合键无法发送到终端时遇到了一些困难。最兼容(对我来说)快速切换选项卡的方法来自Vim Wikia站点。
在您的
.vimrc
文件中放置:nnoremap H gT
nnoremap L gt
现在
Shift-h
(大写) H)和Shift-l
(大写L)将在选项卡之间快速切换,并遵循以下惯例:h
和l
对应于普通qwerty键盘上的vim中的左右。评论
我喜欢这种直观,类似于vim的解决方案。无需箭头键。
–伊万·伊夫科维奇(IvanIvković)
19年4月11日在12:34
我同意。一个非常好的解决方案
– j sad
19年7月16日在18:14
这确实是一个直观的解决方案。谢谢!
–LeOn-韩立
19-10-11的1:41
#5 楼
将它们添加到.vimrc以启用选项卡导航热键:<ctrl-l>
在2个最新选项卡之间切换; <ctrl-j/k>
转到最后一个/下一个选项卡; <ctrl-t>
打开一个新标签。
" tab navigation: Alt or Ctrl+Shift may not work in terminal:
" http://vim.wikia.com/wiki/Alternative_tab_navigation
" Tab navigation like Firefox: only 'open new tab' works in terminal
nnoremap <C-t> :tabnew<CR>
inoremap <C-t> <Esc>:tabnew<CR>
" move to the previous/next tabpage.
nnoremap <C-j> gT
nnoremap <C-k> gt
" Go to last active tab
au TabLeave * let g:lasttab = tabpagenr()
nnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>
vnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>
评论
是否可以将
– zzeroo
19-09-18在9:16
#6 楼
(不幸的是)vim还使用CtrlPgDn / PgUp循环浏览选项卡。您需要使用map
将tabn
/ tabp
映射到可用的对象。#7 楼
如果您使用的是gvim或类似的工具(例如,终端外部的东西),则可以模仿您描述的gnome-terminal
行为:" Map alt-x keys to jump to a tab
for i in range(1, 8)
execute "nmap \<M-" . i . "> " . i . "gt"
endfor
nmap <M-9> :tablast<CR>
所以
alt-1
跳到第一个选项卡,等等。但是alt-9
跳到最后一个选项卡(例如在Chrome中)。您可能希望将其包装在
if has("gui_running")
中(尽管似乎不适用于Neovim),或将其在.gvimrc
中。
评论
我知道我可以输入nnn g t,但是我想快速进行输入,即Alt + nnn或Ctrl + nnn。但是gnome-terminal已经使用了Alt + n,并且绑定到Ctrl + n似乎没有任何作用。
–马修
2012年4月11日在2:46
将功能键映射到nnn g t怎么办?例如:map
–加里约翰
2012年4月11日下午5:00
我发现使用'<'和'>'非常方便
–伊戈尔·斯托帕(Igor Stoppa)
16-2-22在16:14
最后一个制表符::tabl命令(完整格式::tablast)。
–俄罗斯
20 May 25 '17:06