7

Ich habe folgende Zuordnungen in meinem .vimrc:vim kippe Karte <C-Tab> zu: tabnext

map <C-S-Tab> :tabprevious<CR> 
nmap <C-S-Tab> :tabprevious<CR> 
imap <C-S-Tab> <Esc>:tabprevious<CR>i 

map <C-Tab> :tabnext<CR> 
nmap <C-Tab> :tabnext<CR> 
imap <C-Tab> <Esc>:tabnext<CR>i 

Ich möchte die Reiter mit Strg + Tab vorwärts und mit Strg + Shift + Tab rückwärts wechseln. Warum funktioniert dieses Mapping nicht?

+2

Ihre Mappings werden korrekt gelesen, wahrscheinlich leitet Ihr Terminal die Schlüssel nicht weiter. Überprüfe, ob die Shell den ctrl-Tab mit "read" in bash erhalten kann. Es wird für die Zeicheneingabe blockiert und zeigt Ihnen, welche Tastenanschläge empfangen werden. Auf meinem xterm gibt es keinen Unterschied zwischen c-tab und c-s-tab. Lesen zeigt "^ [[Z" für beide. HTH. – zen

Antwort

1

Etwas blockiert wahrscheinlich vim vom C-Tab. Dies könnte Ihr Terminal oder Ihr Fenstermanager sein.

Auf einigen Betriebssystemen/WMs können Sie Ausnahmen zu den Window Manager-Verknüpfungen festlegen, aber wie Sie dies tun, variiert verrückt zwischen den WMs.

Ich bin mir nicht sicher, ob es eine Lösung gibt, wenn es Ihr Terminal blockiert die Tasten drücken.

+0

Der Fenstermanager ist nicht das Problem. Wenn ich ohne X11/GUI zu einem tty-terminal wechsle, funktioniert die Bindung immer noch nicht. Ich benutze Ubuntu 9.04. – Fu86

8

Verwenden Sie xterm? Wenn ja, können Sie ctrl-tab ohne viel Hacker nicht zuordnen. xterm und viele andere Terminal-Emulatoren erkennen ctrl-tab nicht und senden einfach ein tab Zeichen.

Siehe meine Antwort hier für weitere Informationen: Mapping <C-Tab> in my vimrc fails in Ubuntu

Oder Sie können einfach gvim verwenden, wenn diese geeignet ist - es ohne herumschlagen sollte funktionieren.

0

oh ... muss es gemappt werden? verwenden gerade diese vordefinierten Kombinationen:

  • gt: ==: tabnext

  • gT: ==: tabprevious

  • [n] gt: == Sprung zu N Register, z.B. 1GT, 3GT

zu viele kurze Schlüssel definieren, ist einfach, aber wie kann man sie alle erinnern und sie mischen sie nicht zu kurz mit ‚Strg + Tab‘, ‚Alt + Tab‘ (allgemein übliche und übliche Schlüssel in den meisten OS)

Check diese Seite für weitere Informationen: http://vim.wikia.com/wiki/Alternative_tab_navigation

0

Alles, was Sie brauchen, ist xterm.

in Ihrer .Xresources Datei Setzen Sie dieses (Sie in diesem Fall Copy-Paste):

xterm*VT100.Translations: #override \ 
      Ctrl ~Shift <Key>Tab: string(0x1b) string("[27;5;9~") \n\ 
      Ctrl Shift <Key>Tab: string(0x1b) string("[27;6;9~") 

tun Dann cd ; xrdb .Xresources und xterm neu starten.


Setzen Sie diese in Ihrem .vimrc:

!! Wichtige - anstelle von XXXX müssen Sie CTRL-V eingeben und dann EscOR copy-paste den ganzen Text und führen %s/\(set <F1[34]>=\)XXXX/\=submatch(1) . "\33"/g die Kopie-verpastbarem ist (setzen Sie sie mit <CTRL-R> +).

set timeout timeoutlen=1000 ttimeoutlen=100 
set <F13>=XXXX[27;5;9~ 
nnoremap <F13> gt 
set <F14>=XXXX[27;6;9~ 
nnoremap <F14> gT 

Und Neustart vim.

Fertig.

Verwandte Themen