Skrót do przełączania kart w MacVimie

16

Czy w MacVimie są jakieś skróty do przełączania kart z jednej na drugą?

MacVim Tabs

Wszelkie porady dotyczące samodzielnego wiązania skrótów w .vimrc, takie jak ⌘ + 1 dla Tab 1 i ⌘ + 2 dla Tab 2. Na przykład, jak przełączanie kart przeglądarki.

Ye Lin Aung
źródło

Odpowiedzi:

17

Ponieważ MacVim jest rzeczywistym programem w systemie Mac OS, możesz mapować przełączanie kart w taki sam sposób, jak mapujesz polecenia w dowolnym programie (o czym osobiście niedawno się dowiedziałem).

Otwórz Preferencje systemowe, wybierz „Klawiatura”, a następnie „Skróty aplikacji” (w menu po lewej stronie). W menu po prawej stronie kliknij plus (+), aby dodać nowe polecenie. Wybierz MacVim dla aplikacji, a dla tytułu menu wpisz „Wybierz następną kartę” i wybierz skrót (wybrałem Cmd + strzałka w prawo). Następnie zrób to samo dla polecenia „Wybierz poprzednią kartę”.

„Wybierz następną kartę” i „Wybierz poprzednią kartę” można znaleźć w MacVim w menu „Okno”. Każda opcja widoczna w dowolnym menu dla aplikacji może być odwzorowana za pomocą tej metody.

DevDaddyNick
źródło
1
Ponieważ pytanie dotyczyło Macvima, to rozwiązanie jest ładniejsze. Jedyną rzeczą jest to, że jeśli chcesz przenieść swój plik .vimrc na inne maszyny, może to nie działać, ale nadal wolę to. Dzięki.
sabertooth
w systemie Windows / Linux i map Alt + 1 ... 10 w kolejności tabulatorów. Byłoby miło, gdyby polecenie + 1 przechodziło do pierwszej karty, tak jak w przypadku każdej innej aplikacji na Macu. W każdym razie to zrobić? Menu do tego to „Bufor >> <nazwa pliku> (1)”
gcb
20

Możesz oczywiście zmienić skróty za pomocą preferencji systemowych OSX na klawiaturze, jak pokazano tutaj: Jak zmienić przypisanie dowolnego skrótu klawiaturowego w Mac OS X

Niektórzy wolą to zrobić za pomocą .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
źródło
1
Dzięki, zdecydowanie wolę to rozwiązanie od wybranego, ponieważ używam strzałki w prawo | w lewo do przejścia do końca / początku linii!
Brian Underwood
1
Jak można to zrobić w trybie wstawiania?
Oliver Joseph Ash
To jest ponad piękne! Dzięki! 🙏
Nik
12

Możesz wybrać następną kartę za pomocą + }i wybierz poprzednią kartę za pomocą +{

Klawisz Shift jest wymagany, aby nie tylko nacisnąć [zamiast Zamiast, }
więc skrót to + shift+ ]lub + shift+ [
Skróty te działają w wielu aplikacjach, tj. W terminalu

Masolino
źródło
Nie o to prosi OP ... chodziło o zmianę kart w MacVimie, a nie na terminalu
JESii
2
Ale jest to skrót klawiaturowy MacVim. Klawisze poleceń nie tłumaczą się na terminal vim.
spoulson,
Używam MacVima i jak wspomniano w tym rozwiązaniu, ma już polecenia klawiaturowe do przełączania kart. Po prostu brakowało mi klawisza <kbd> Shift </kbd> podczas wykonywania <kbd> ⌘ </kbd> + <kbd>} </kbd>.
brettlyman
5

Mam następujące w moim ~ / .vimrc dla Linux. Powinieneś być w stanie zmienić <M-sekwencję „ <D-” na „ ”, aby uzyskać to, czego chcesz:

" 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
Heptyt
źródło
3

Oprócz tworzenia własnych mapowania nie wbudowane w vim skrótów. Wypróbuj numer, a następnie gt. Na przykład: 3gtprzenosi cię do trzeciej karty. Możesz także zrobić tylko gtprzejście do następnej karty lub gTprzejść do poprzedniej.

(Od wersji vim 7. tabulatory zostały wypalone nawet w wersji tekstowej innej niż gvim).

Murftown
źródło
Doskonały! Natywny sposób vim to zrobić; dzięki.
JESii