Das kannst du nicht.
Hier ist der C-Quellcode für die folgenden Aufgaben <C-w><C-i>
:
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;
Ich bin mir nicht ganz sicher, wo die type
Variable aufgenommen wird. Ich wollte das nicht nachschlagen, aber der Punkt ist, dass es keine echte Möglichkeit gibt, zu sagen, dass "dieser Schlüssel dieser Funktionalität zugeordnet ist". Im Grunde ist es nur eine Funktion, struct
die a char
auf eine Funktion abbildet , und die Implementierung des zweiten Tastenanschlags ( <C-i>
) ist einfach eine Ad-hoc-Hässlichkeit!
Dies unterscheidet sich von Emacs, wo (ich nehme an) alles in Lisp ist, und Ihre benutzerdefinierten Zuordnungen unterscheiden sich nicht von den Standardzuordnungen von Emacs. In Vim gibt es jedoch "magische" Zuordnungen, die vom C-Code bereitgestellt werden und die C-Funktionen zuordnen, die in Vim niemals verfügbar sind. Ich sage immer, dass Vim die bessere Idee hat, aber Emacs die bessere Implementierung hat ;-)
Die einzige Möglichkeit besteht darin, sie in den Hilfedateien nachzuschlagen. Aus diesem Grund habe ich dies als Duplikat von " Wie navigiere ich zu Themen in der Dokumentation von Vim?" Geschlossen, da dies die einzige praktische Antwort ist, die jeder geben kann. Man könnte in der Tat argumentieren, dass eine ausführlichere Erklärung zu der Frage gegeben werden könnte (wie ich es gerade getan habe), und hätten Sie argumentiert, dass ich , anstatt die (jetzt gestrichene) Antwort zu geben, wahrscheinlich "Sie" gesagt hätte. hab recht, sorry für den fehler "und habe es wieder geöffnet ;-)
In jedem Fall, um die Konventionen mit einigen Beispielen kurz zu veranschaulichen:
:help w
- Normalmodus-Zuordnung für w
(Groß- und Kleinschreibung beachten);
:help g8
- Normalmodus-Zuordnung für g8
;
:help v_o
- Visual Mode Mapping für o
; andere Modi sind c
für die Befehlszeile und i
zum Einfügen;
:help CTRL-W
- Normalmodus-Zuordnung für <C-w>
;
:help i_CTRL-W
- Einfügemoduszuordnung für <C-w>
;
:help CTRL-W_CTRL-I
- Normalmodus-Zuordnung für <C-w><C-i>
;
:help i_CTRL-G_<Down>
- Einfügemoduszuordnung für <C-g><Down>
.