Vim 键盘快捷键在选项卡之间移动

问题描述 投票:0回答:10

我曾经知道这个键盘快捷键,它可以让你在终端中的 Vim 选项卡之间移动,类似于浏览器中的 Ctrl+tab

我在网上找遍了,还是找不到。有什么想法吗?

P.S.:您必须同时按两个字母。

vim tabs keyboard
10个回答
48
投票

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>

38
投票

这取自 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

希望有帮助。


14
投票

也许

  • Ctrl+上一页
  • Ctrl+下翻页

?但如果你里面有一些 gnome 终端选项卡和 vim 终端选项卡,它就不起作用。你需要

  • Ctrl+Alt+上一页
  • Ctrl+Alt+下翻页

对于 vim 和

  • Ctrl+上一页
  • Ctrl+下翻页

适用于 gnome 终端。


9
投票

g+tg+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"

8
投票

最好的是映射你的“L”和“H”键,因为这些也是光标移动的键(分别向右和向左),我们不需要记住任何东西。

map <C-L> gt
map <C-H> gT

这可能是导航选项卡的最自然方式,无需练习或记住任何内容。只需按:Ctrl+L(或长按 L 进一步导航)。同样,如果您想向左导航,请按 Ctrl+H。

尝试一下,然后您才能了解其好处,因为映射的键与光标所用的相同


5
投票

这对某些人来说可能有点极端,但你可以这样做:

nmap <Left> gT
nmap <Right> gt

事实证明,在正常模式下您确实不需要箭头键(只需使用 hjkl 键进行导航),并且您不需要在编辑模式下更改选项卡。无论如何,使用 gt 和 gT 来更改选项卡是荒谬的。


0
投票
: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>

0
投票

使用@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

0
投票

试试这个:

方式1:

如果您想以垂直或水平方式在几个选项卡之间快速切换。

Ctrl + w w

方式2:

还有,如果你想通过方向键灵活切换。

Ctrl + w + 从键盘上举起手,然后 + / / /


0
投票

正如其他答案所提到的,

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 移动到选项卡二,等等

如果需要,您仍然可以键入这些字符,因为我们仅在命令模式下重新映射。

© www.soinside.com 2019 - 2024. All rights reserved.