Verknüpfung zum Wechseln der Registerkarten in MacVim

16

Gibt es in MacVim Verknüpfungen zum Wechseln der Registerkarten von einer zur anderen?

MacVim-Registerkarten

Tipps zum Binden der Verknüpfungen in .vimrc, z. B. ⌘ + 1 für Tab 1 und ⌘ + 2 für Tab 2. Zum Beispiel zum Wechseln der Browser-Registerkarten.

Ye Lin Aung
quelle

Antworten:

17

Da es sich bei MacVim um ein aktuelles Programm unter Mac OS handelt, können Sie die Tab-Umschaltung so vornehmen, wie Sie Befehle in einem beliebigen Programm (von dem ich gerade erfahren habe).

Öffnen Sie die Systemeinstellungen, wählen Sie "Tastatur" und dann "Anwendungsverknüpfungen" (im linken Menü). Klicken Sie im Menü rechts auf das Pluszeichen (+), um einen neuen Befehl hinzuzufügen. Wählen Sie MacVim für die Anwendung und geben Sie als Menütitel "Select Next Tab" ein und wählen Sie eine Verknüpfung (ich habe Cmd + Rechtspfeil gewählt). Führen Sie dann das gleiche für den Befehl "Vorherige Registerkarte auswählen" aus.

"Nächstes Register auswählen" und "Vorheriges Register auswählen" finden Sie in MacVim im Menü "Fenster". Jede Option, die Sie in einem der Menüs für eine App sehen, kann mit dieser Methode neu zugeordnet werden.

DevDaddyNick
quelle
1
Da die Frage zu Macvim gestellt wurde, ist diese Lösung besser. Das einzige, was ist, wenn Sie Ihre .vimrc auf andere Computer portieren möchten, funktioniert dies möglicherweise dort nicht, aber ich bevorzuge dies dennoch. Vielen Dank.
Sabertooth
Unter Windows / Linux ordne ich Alt + 1 ... 10 der Tab-Reihenfolge zu. Es wäre schön, wenn Befehl + 1 zum ersten Tab wechselt, wie es für jede andere Anwendung auf Macs der Fall ist. Wie auch immer, das zu tun? Das Menü dafür ist "Buffer >> <
filename
20

Sie können Verknüpfungen natürlich in den OSX-Systemeinstellungen für Ihre Tastatur ändern, wie hier gezeigt: So ordnen Sie eine beliebige Tastenkombination in Mac OS X neu zu

Einige mögen es vorziehen, dies über ihre .vimrc:

if has("gui_macvim")
  " Press Ctrl-Tab to switch between open tabs (like browser tabs) to 
  " the right side. Ctrl-Shift-Tab goes the other way.
  noremap <C-Tab> :tabnext<CR>
  noremap <C-S-Tab> :tabprev<CR>

  " Switch to specific tab numbers with Command-number
  noremap <D-1> :tabn 1<CR>
  noremap <D-2> :tabn 2<CR>
  noremap <D-3> :tabn 3<CR>
  noremap <D-4> :tabn 4<CR>
  noremap <D-5> :tabn 5<CR>
  noremap <D-6> :tabn 6<CR>
  noremap <D-7> :tabn 7<CR>
  noremap <D-8> :tabn 8<CR>
  noremap <D-9> :tabn 9<CR>
  " Command-0 goes to the last tab
  noremap <D-0> :tablast<CR>
endif
cseelus
quelle
1
Vielen Dank, ich bevorzuge diese Lösung der ausgewählten, da ich den Befehl-Rechts | Links-Pfeil verwende, um zum Ende / Anfang der Zeilen zu gelangen!
Brian Underwood
1
Wie kann man das im Einfügemodus machen?
Oliver Joseph Ash
Das ist unbeschreiblich schön! Vielen Dank! 🙏
Nik
12

Sie können die nächste Registerkarte mit + }und die vorherige Registerkarte mit + auswählen{

Die Umschalttaste ist erforderlich, um nicht nur ein [statt eines zu drücken. }
Die Verknüpfung lautet also + shift+ ]oder + shift+. [
Diese Verknüpfung funktioniert in vielen Apps, dh im Terminal

Masolino
quelle
Dies ist nicht das, was das OP verlangt ... die Frage war, die Tabs in MacVim zu wechseln, nicht im Terminal
JESii
2
Dies ist jedoch eine MacVim-Tastenkombination. Befehlstasten werden nicht in Terminal VIM übersetzt.
Spoulson
Ich verwende MacVim und wie in dieser Lösung erwähnt, verfügt es bereits über Tastaturbefehle zum Wechseln der Registerkarten. Mir hat einfach die <kbd> Umschalttaste </ kbd> gefehlt, als ich <kbd> ⌘ </ kbd> + <kbd>} </ kbd> ausgeführt habe.
Brettlyman
5

Ich habe die folgenden in meinem ~ / .vimrc für Linux. Sie sollten in der Lage sein, die " <M-" Reihenfolge zu " <D-" zu ändern , um das zu erhalten, was Sie wollen:

" Meta+1-0 jumps to tab 1-10, Shift+Meta+1-0 jumps to tab 11-20:
let s:windowmapnr = 0
let s:wins='1234567890!@#$%^&*()'
while (s:windowmapnr < strlen(s:wins))
    exe 'noremap <silent> <M-' . s:wins[s:windowmapnr] . '> ' . (s:windowmapnr + 1) . 'gt'
    exe 'inoremap <silent> <M-' . s:wins[s:windowmapnr] . '> <C-O>' . (s:windowmapnr + 1) . 'gt'
    exe 'cnoremap <silent> <M-' . s:wins[s:windowmapnr] . '> <C-C>' . (s:windowmapnr + 1) . 'gt'
    exe 'vnoremap <silent> <M-' . s:wins[s:windowmapnr] . '> <C-C>' . (s:windowmapnr + 1) . 'gt'
    let s:windowmapnr += 1
endwhile
unlet s:windowmapnr s:wins
Heptit
quelle
3

Zusätzlich zum Erstellen eigener Zuordnungen gibt es integrierte vim-Verknüpfungen. Versuchen Sie es mit einer Zahl, gefolgt von gt. Zum Beispiel: 3gtWechselt zur dritten Registerkarte. Sie können auch einfach gtzum nächsten oder gTzum vorherigen Tab wechseln .

(Seit vim 7.something wurden Tabs auch in der Nicht-gvim-Version im Textmodus gebacken.)

Murftown
quelle
Perfekt! Die einheimische Art, dies zu tun; Vielen Dank.
JESii