我曾经知道这个键盘快捷键,它可以让你在终端中的 Vim 选项卡之间移动,类似于浏览器中的 Ctrl+tab。
我在网上找遍了,还是找不到。有什么想法吗?
P.S.:您必须同时按两个字母。
gt
是 :tabnext
的键盘快捷键,gT
是 :tabprevious
的键盘快捷键。
如果您更喜欢典型的 Ctrl + Tab,请在
~/.vimrc
中定义以下映射:
" CTRL-Tab is next tab
noremap <C-Tab> :<C-U>tabnext<CR>
inoremap <C-Tab> <C-\><C-N>:tabnext<CR>
cnoremap <C-Tab> <C-C>:tabnext<CR>
" CTRL-SHIFT-Tab is previous tab
noremap <C-S-Tab> :<C-U>tabprevious<CR>
inoremap <C-S-Tab> <C-\><C-N>:tabprevious<CR>
cnoremap <C-S-Tab> <C-C>:tabprevious<CR>
这取自 Vim Wikia:
gt go to next tab
gT go to previous tab
{i}gt go to tab in position i
http://vim.wikia.com/wiki/Using_tab_pages
希望有帮助。
也许
?但如果你里面有一些 gnome 终端选项卡和 vim 终端选项卡,它就不起作用。你需要
对于 vim 和
适用于 gnome 终端。
g+t 和 g+T 是 Vim 跳转到下一个和上一个选项卡的快捷键。
您可以使用
<C-Tab>
和 <C-S-Tab>
在 Vim 中进行映射,但您可能需要帮助您的 terminal 生成正确的键代码。根据您的终端,
urxvt,添加到您的
.Xresources
文件:
URxvt*keysym.C-Tab: \033[27;5;9~
URxvt*keysym.C-S-Tab: \033[27;6;9~
kitty,添加到您的
~/.config/kitty/kitty.conf
:
map ctrl+i send_text all \x1b[27;5;105~
map ctrl+tab send_text all \x1b[27;5;9~
map ctrl+shift+tab send_text all \x1b[27;6;9~
Alacritty,将以下内容添加到您的
~/.config/alacritty/alacritty.toml
:
[[keyboard.bindings]]
chars = "\u001B[27;5;105~"
key = "I"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[27;5;9~"
key = "Tab"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[27;6;9~"
key = "Tab"
mods = "Control|Shift"
最好的是映射你的“L”和“H”键,因为这些也是光标移动的键(分别向右和向左),我们不需要记住任何东西。
map <C-L> gt
map <C-H> gT
这可能是导航选项卡的最自然方式,无需练习或记住任何内容。只需按:Ctrl+L(或长按 L 进一步导航)。同样,如果您想向左导航,请按 Ctrl+H。
尝试一下,然后您才能了解其好处,因为映射的键与光标所用的相同
这对某些人来说可能有点极端,但你可以这样做:
nmap <Left> gT
nmap <Right> gt
事实证明,在正常模式下您确实不需要箭头键(只需使用 hjkl 键进行导航),并且您不需要在编辑模式下更改选项卡。无论如何,使用 gt 和 gT 来更改选项卡是荒谬的。
:nmap <C-S-tab> :tabprevious<cr>
:nmap <C-tab> :tabnext<cr>
:nmap <C-t> :tabnew<cr>
:map <C-t> :tabnew<cr>
:map <C-S-tab> :tabprevious<cr>
:map <C-tab> :tabnext<cr>
:map <C-w> :tabclose<cr>
:imap <C-S-tab> <ESC>:tabprevious<cr>i
:imap <C-tab> <ESC>:tabnext<cr>i
:imap <C-t> <ESC>:tabnew<cr>
使用@Mickey 答案添加更多快捷方式
gt - go to next tab
gT - go to previous tab
{i}gt - go to tab in position i
1gt - go to first tab
1gT - go to last tab
试试这个:
方式1:
如果您想以垂直或水平方式在几个选项卡之间快速切换。
Ctrl + w w
方式2:
还有,如果你想通过方向键灵活切换。
Ctrl + w + 从键盘上举起手,然后 + ← / ↑ / → / ↓
正如其他答案所提到的,
gt
(g
用于“转到”命令,t
用于选项卡)。
可以使用选项卡编号作为前缀,如
1gt
所示,转到选项卡一。 (恕我直言,这很奇怪,因为该语法应该意味着“从当前选项卡移动 N 个选项卡”,就像所有其他移动前缀一样,例如 2w
)
将这些知识与以下事实结合起来:当您按
<D-n>
时,大多数终端都会给您 Alt+1
或一些奇怪的符号,您可以使用:
(注意!您必须通过在终端上实际输入
ALT+1
来检查您得到的内容)
"tabs like firefox
"must use the especial chars (created in ABNT2 keyboard, tested on US keyboard. Under both X and wayland)
"when you press alt-1...0
noremap ± 1gt
noremap ² 2gt
noremap ³ 3gt
noremap ´ 4gt
noremap µ 5gt
noremap ¶ 6gt
noremap · 7gt
noremap ¸ 8gt
noremap ¹ 9gt
noremap ° 10gt
"and now the same for right_alt-1..0
noremap ¹ 1gt
noremap ² 2gt
noremap ³ 3gt
noremap £ 4gt
noremap ¢ 5gt
noremap ¬ 6gt
noremap { 7gt
noremap [ 8gt
noremap ] 9gt
noremap } 10gt
"and for mac command+1,2,3... support:
noremap <D-1> 1gt
noremap <D-2> 2gt
noremap <D-3> 3gt
noremap <D-4> 4gt
noremap <D-5> 5gt
noremap <D-6> 6gt
noremap <D-7> 7gt
noremap <D-8> 8gt
noremap <D-9> 9gt
noremap <D-0> 10gt
现在,在命令模式下“键入”这些符号会将您移至选项卡。结果是您可以像任何其他 GUI 应用程序一样移动选项卡! ALT+1 移动到选项卡一,ALT+2 移动到选项卡二,等等
如果需要,您仍然可以键入这些字符,因为我们仅在命令模式下重新映射。