Tu ne peux pas.
Voici le code source C pour ce qui <C-w><C-i>
fait:
normal.c
:
/*
* This table contains one entry for every Normal or Visual mode command.
* The order doesn't matter, init_normal_cmds() will create a sorted index.
* It is faster when all keys from zero to '~' are present.
*/
static const struct nv_cmd
{
int cmd_char; /* (first) command character */
nv_func_T cmd_func; /* function for this command */
short_u cmd_flags; /* NV_ flags */
short cmd_arg; /* value for ca.arg */
} nv_cmds[] =
{
[...]
{Ctrl_W, nv_window, 0, 0},
};
[...]
/*
* CTRL-W: Window commands
*/
static void
nv_window(cmdarg_T *cap)
{
if (!checkclearop(cap->oap))
do_window(cap->nchar, cap->count0, NUL); /* everything is in window.c */
}
window.c
:
/*
* all CTRL-W window commands are handled here, called from normal_cmd().
*/
void
do_window(
[..]
) {
switch (nchar)
{
[..]
case 'i': /* Go to any match */
case Ctrl_I:
type = FIND_ANY;
/* FALLTHROUGH */
[..]
default: beep_flush();
break;
Je ne sais pas exactement où la type
variable est récupérée, je n'avais pas envie de chercher ça, mais le fait est qu'il n'y a pas vraiment de facilité pour dire "cette clé est mappée à cette fonctionnalité". C'est fondamentalement juste un struct
qui mappe un char
à une fonction, et l'implémentation de la deuxième frappe ( <C-i>
) est simplement une laideur ad hoc!
C'est différent d'Emacs, où (je présume) tout est en Lisp, et vos mappages personnalisés ne sont pas différents des mappages par défaut d'Emacs. Mais dans Vim, vous avez des mappages "magiques" fournis par le code C qui correspondent aux fonctions C qui ne sont jamais exposées dans Vim. Je dis toujours que Vim a la meilleure idée, mais Emacs a la meilleure implémentation ;-)
La seule façon est donc de le rechercher dans les fichiers d'aide. C'est pourquoi j'ai fermé ceci en double de Comment naviguer vers les rubriques de la documentation de Vim, car c'est la seule réponse pratique que l' on puisse donner. On pourrait en effet affirmer qu'une explication plus approfondie de la question pourrait être donnée (comme je viens de le faire), et si vous aviez soutenu qu'au lieu de donner la réponse (maintenant supprimée), j'aurais probablement dit "vous" re right, désolé pour l'erreur "et l'a rouvert ;-)
En tout cas, pour illustrer brièvement les conventions avec quelques exemples:
:help w
- mappage en mode normal pour w
(sensible à la casse);
:help g8
- mappage en mode normal pour g8
;
:help v_o
- cartographie du mode visuel pour o
; les autres modes sont c
pour la ligne de commande et i
pour l'insertion;
:help CTRL-W
- mappage en mode normal pour <C-w>
;
:help i_CTRL-W
- insérer le mappage de mode pour <C-w>
;
:help CTRL-W_CTRL-I
- mappage en mode normal pour <C-w><C-i>
;
:help i_CTRL-G_<Down>
- insérer le mappage de mode pour <C-g><Down>
.