Ich habe vor kurzem angefangen, Vim zu verwenden. Von früheren Redakteuren bin ich es gewohnt, ein ganzes Wort durch Drücken von Ctrl- zu löschen Backspace. Nachdem ich mir die Dokumentation angesehen hatte, stellte ich fest, dass dies durch Drücken von Ctrl- win Vim geschehen war . Das Problem ist, dass ich , nachdem ich mich an das Drücken von Ctrl- wgewöhnt habe, jedes Mal Tabs und Chats geschlossen habe, wenn ich ein Wort falsch geschrieben habe (während ich diese Frage schrieb, habe ich diesen Tab 5 Mal geschlossen). Also habe ich überprüft, wie Schlüssel in Vim zugeordnet werden, und Folgendes versucht:
:imap <C-BS> <C-w>
Leider hat es nicht funktioniert. Nach ein wenig Recherche stellte ich fest, dass das Terminal nicht zwischen Ctrl- Backspaceund unterscheidet Backspace. Ich habe einige Hacks und Patches gesehen, um dieses Problem zu beheben, aber ich konnte sie nicht dazu bringen, mit dem Terminator (dem Emulator, den ich verwenden möchte) zu arbeiten.
Gibt es eine Möglichkeit zum Zuordnen Ctrl- Backspacein Vim bei Verwendung des Terminators?
quelle
Antworten:
Aufgrund der internen Handhabung der Tastatureingabe ist dies heute leider nicht mehr möglich. Einige Tastenkombinationen wie Ctrl+ nicht alphabetisch können nicht zugeordnet werden, und Ctrl+ Buchstabe vs. Ctrl+ Shift+ Buchstabe kann nicht unterschieden werden. (Es sei denn, Ihr Terminal sendet einen eindeutigen Termcap- Code dafür, was die meisten nicht tun.) 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 über vim_dev und den # vim-IRC-Kanal.Einige Leute (vor allem Paul LeoNerd Evans) wollen das beheben (sogar für Konsolen-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 haben sich jedoch noch keine Patches oder Freiwilligen gemeldet, obwohl viele den Wunsch geäußert haben, dies in einer zukünftigen Vim 8-Hauptversion zu tun.
quelle
^?
sowohl für die Rücktaste als auch für Strg + Rücktaste, wodurch sie (AFAIK) nicht unterscheidbar sind. xterm hingegen sendet für die Rücktaste^H
und^?
für Strg + Rücktaste, wodurch sie unterscheidbar sind.^H
ist backspace (^H
) in xterm nicht von Strg + h ( ) zu unterscheiden. Vielleicht können wir eine neue Escape-Sequenz erstellen, um alle drei unterscheiden zu können? Ich weiß nicht, wie einfach das ist, aber es scheint sicher zu sein, weil ich mir nach dem aktuellen Stand der Dinge (einige Terminals werden^?
für die Rücktaste verwendet, andere^H
und umgekehrt) nicht viele Terminal-Apps vorstellen kann (falls überhaupt vorhanden) Betrachten Sie das Szenario Strg + Rücktaste (es wäre aufgrund der Vielzahl der Terminals völlig unbestimmt) ...