J'ai récemment commencé à utiliser Vim. Dans les éditeurs précédents, j'ai l'habitude de supprimer un mot entier en appuyant sur Ctrl- Backspace. Après avoir examiné la documentation, j'ai constaté que cela se faisait en appuyant sur Ctrl- wdans Vim. Le problème est qu'après avoir pris l'habitude d'appuyer sur Ctrl- w, j'ai commencé à fermer les onglets et les chats à chaque fois que j'orthographe un mot (en écrivant cette question, j'ai fermé cet onglet 5 fois). J'ai donc vérifié comment mapper les clés dans Vim et j'ai essayé ceci:
:imap <C-BS> <C-w>
Malheureusement, cela n'a pas fonctionné. Après un peu de recherche, j'ai trouvé que le terminal ne fait pas de distinction entre Ctrl- Backspaceet Backspace. J'ai vu des hacks et des correctifs pour résoudre ce problème, mais je n'ai pas pu les faire fonctionner sur Terminator (qui est l'émulateur que je veux utiliser).
Existe-t-il un moyen de mapper Ctrl- Backspacedans Vim lors de l'utilisation de terminator?
la source
Réponses:
En raison de la façon dont la saisie au clavier est gérée en interne, ce n'est malheureusement généralement pas possible aujourd'hui. Certaines combinaisons de touches, comme Ctrl+ non alphabétique ne peuvent pas être mappées, et Ctrl+ lettre vs Ctrl+ Shift+ lettre ne peuvent pas être distinguées. (À moins que votre terminal n'envoie un code termcap distinct , ce que la plupart ne font pas.) En mode insertion ou en ligne de commande, essayez de taper la combinaison de touches. Si rien ne se passe / n'est inséré, vous ne pouvez pas utiliser cette combinaison de touches. Cela s'applique également à
<Tab>
/<C-I>
,<CR>
/<C-M>
/<Esc>
/<C-[>
etc. (La seule exception est<BS>
/<C-H>
.) Ceci est un problème connu et fait l'objet de diverses discussions sur vim_dev et le canal IRC #vim.Certaines personnes (avant tout Paul LeoNerd Evans) veulent corriger cela (même pour la console Vim dans les terminaux qui prennent en charge cela), et ont flotté diverses propositions, cp. http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8
Mais à ce jour, aucun correctif ou volontaire ne s'est encore présenté, bien que beaucoup aient exprimé le souhait de l'avoir dans une future version majeure de Vim 8.
la source
^?
à la fois pour le retour arrière et ctrl + retour arrière, ce qui les rend (AFAIK) indiscernables. xterm, d'autre part, envoie^H
pour le retour arrière et^?
pour ctrl + retour arrière, ce qui les rend reconnaissables.^H
) est indiscernable de ctrl + h (^H
). Peut-être pouvons-nous créer une nouvelle séquence d'échappement pour pouvoir distinguer les trois? Je ne sais pas à quel point c'est facile, mais il semble que ce serait sûr car avec l'état actuel des choses (certains terminaux utilisent^?
pour le retour arrière, d'autres^H
et vice versa), je ne peux pas imaginer de nombreuses applications de terminal (le cas échéant) considérez le scénario ctrl + retour arrière (ce serait complètement indéterministe en raison de la variété des terminaux) ...