it-swarm.com.de

Wie kann ich in vim schnell zwischen Registerkarten wechseln?

Im Gnome-Terminal kann ich einfach drücken Alt + (123usw.), um zu bestimmten Registerkarten zu wechseln. Ich kann auch verwenden Ctrl + (PgUp / PgDn), um durch die Registerkarten zu blättern (zugegebenermaßen weniger praktisch, aber es kann neu zugeordnet werden).

Wenn ich vim-Registerkarten anstelle von gnome-terminal-Registerkarten verwenden möchte, ist die Eingabe von :tabn und :tabp ziemlich umständlich. Ich könnte sie Tastaturkürzeln zuordnen, aber das ist immer noch viel weniger praktisch als direkt zu Tab 4 zu springen Alt + 4.

Gibt es eine schnellere Möglichkeit, in vim zwischen Registerkarten zu wechseln?

119
Matthew

Nächster Reiter: gt

Vorheriger Tab: gT

Nummerierte Registerkarte: nnngt

196
ephemient

Warum nicht von deinem Anführer Gebrauch machen? 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>

Sie können die folgenden Einstellungen verwenden, um zwischen der aktuellen und der zuletzt aktiven Registerkarte zu wechseln (hier wird sie zugeordnet) Ctrl+Ld. h. <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>
39
unblevable

Dies ist der einfachste Weg, den ich gefunden habe, um schneller und einfacher zwischen Registerkarten zu wechseln.
Füge die nächsten Zeilen zu deiner .vimrc hinzu und genieße es, weitere Tricks zu den vim-Tabs hier .

nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>

Jetzt können Sie verwenden Ctrl nach links gehen und Ctrl nach rechts gehen.

Oder benutzen Sie einfach:
1gt zu tab eins gehen,
2gt zu tab zwei gehen,
3gt um zu Tab drei zu gelangen, etc ... jetzt hast du die Idee.

21

Da ich auf einem Mac bin und MacVim nicht verwende (sondern nur Vim innerhalb eines Terminals), hatte ich einige Schwierigkeiten, wenn Tastenkombinationen nicht an das Terminal gesendet wurden.

Die für mich am besten kompatible (und bequemste) Möglichkeit, schnell zwischen Tabs zu wechseln, ist die Vim Wikia-Site .

Platziere in deiner .vimrc Datei:

nnoremap H gT
nnoremap L gt

Jetzt wechseln Sie mit Shift-h (Großbuchstabe H) und Shift-l (Großbuchstabe L) schnell zwischen den Registerkarten und folgen der Konvention, dass h und l auf einer normalen QWERTY-Tastatur links und rechts entsprechen.

11
Stefan Magnuson

(Leider) nutzt auch vim CtrlPgDn/PgUp Tabs durchlaufen. Sie müssen map verwenden, um tabn/tabp einem verwendbaren Element zuzuordnen.

Fügen Sie diese zu .vimrc hinzu, um die Tastenkombinationen für die Tabulatornavigation zu aktivieren:

<ctrl-l> wechselt zwischen den letzten 2 Registerkarten;

<ctrl-j/k> gehe zum letzten/nächsten Tab;

<ctrl-t> öffne eine neue Registerkarte.

" 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>

0
Mengqi Ji

Wenn Sie gvim oder ähnliches verwenden (d. H. Etwas außerhalb des Terminals), können Sie das von Ihnen beschriebene Verhalten von gnome-terminal imitieren:

" 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>

Also springt alt-1 zum ersten Tab usw. Aber alt-9 springt zum letzten Tab (wie in Chrome).

Möglicherweise möchten Sie dies in if has("gui_running") einschließen (obwohl dies bei Neovim nicht zu funktionieren scheint) oder dies in .gvimrc einfügen.

0
Joe Freeman