Wie kann ich in vim <tab> neu zuordnen, ohne auch <Strg + i> neu zuzuordnen?

14

Ich verwende gerne die Tabulatortaste, um zwischen geteilten Fenstern zu springen, also habe ich map <tab> <C-W><C-W>in meinem .vimrc. Dabei ist mir aufgefallen, dass ich mich dadurch nicht mehr als Strg + I verhalte, sondern als Strg + W, Strg + W. Wie kann ich nur <tab>aber nicht neu zuordnen <C-i>?

Jonathan
quelle

Antworten:

10

Aufgrund der Art und Weise, wie die Tastatureingabe intern erfolgt, ist dies heute leider auch in GVIM nicht generell möglich. Einige Tastenkombinationen, z. B. Ctrl+ nicht alphabetisch, können nicht zugeordnet werden, und Ctrl+ Buchstabe vs. Ctrl+ Shift+ Buchstabe können nicht unterschieden werden. (Es sei denn, Ihr Terminal sendet einen eigenen Termcap- Code, der von den meisten nicht unterstützt wird.) Geben Sie im Einfüge- oder Befehlszeilenmodus die Tastenkombination ein. Wenn nichts passiert / eingefügt wird, können Sie diese Tastenkombination nicht verwenden. Dies gilt auch für <Tab>/ <C-I>, <CR>/ <C-M>/ <Esc>/ <C-[>usw. (Einzige Ausnahme ist <BS>/ <C-H>.) Dies ist ein bekannter Schmerzpunkt und Gegenstand verschiedener Diskussionen zu vim_dev und dem IRC-Kanal #vim.

Einige Leute (vor allem Paul LeoNerd Evans) wollen das beheben (sogar für Console Vim in Terminals, die dies unterstützen) und haben verschiedene Vorschläge unterbreitet, vgl. http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8

Bis heute sind noch keine Patches oder freiwilligen Helfer erschienen, obwohl viele den Wunsch geäußert haben, dies in einer zukünftigen Hauptversion von Vim 8 zu haben.

Ingo Karkat
quelle
1
Wurde dieses Problem mit der Zuordnung / Erkennung von Schlüsselcodes ab sofort (Jahr 2017) in Vim 8 behoben? Ich finde, ich kann Jons Beispiel immer noch auf meiner Vim 8.0
llinfeng 24.07.17
@ Linfeng: Nein, leider nicht. Bram arbeitet derzeit an der Integration eines Terminals in Vim. Dies scheint eine Bibliothek zu verwenden, die von Paul Evans erstellt wurde. Vielleicht führt dies auch zu einer Verbesserung der verarbeiteten Schlüssel. (Aber dies ist zu diesem Zeitpunkt reine Spekulation.)
Ingo Karkat
0

Nicht alle Verknüpfungen sind in Vim möglich, insbesondere wenn es unter einem Terminal ausgeführt wird. Ich empfehle, zu diesem Zweck keine Tab-Verknüpfung zu verwenden. Eine alternative Lösung könnte jedoch sein:

" Note: Allows faster switching between windows with "Ctrl+w"! By Questor
nnoremap <silent> <C-w> <C-w><C-w>
inoremap <silent> <C-w> <Esc><C-w><C-w>
vnoremap <silent> <C-w> <Esc><C-w><C-w>

Ein Verwendungsbeispiel finden Sie unter https://github.com/eduardolucioac/groovim/blob/master/.vimrc

[] 's

Eduardo Lucio
quelle