Kamu tidak bisa
Berikut kode sumber C untuk apa <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;
Saya tidak sepenuhnya yakin di mana type
variabel dijemput, saya tidak merasa ingin melihat itu, tetapi intinya, bahwa tidak ada fasilitas nyata untuk mengatakan "kunci ini dipetakan ke fungsi ini". Ini pada dasarnya hanya struct
yang memetakan char
fungsi, dan implementasi keystroke kedua ( <C-i>
) hanyalah keburukan ad-hoc!
Ini berbeda dari Emacs, di mana (saya kira) semuanya ada di Lisp, dan pemetaan kustom Anda tidak berbeda dengan pemetaan default Emacs. Tetapi dalam Vim Anda memiliki pemetaan "ajaib" yang disediakan oleh kode C yang memetakan terhadap fungsi C yang tidak pernah terpapar di Vim. Saya selalu mengatakan bahwa Vim memiliki ide yang lebih baik, tetapi Emacs memiliki implementasi yang lebih baik ;-)
Jadi satu-satunya cara adalah mencarinya di file bantuan. Inilah mengapa saya menutup ini sebagai duplikat dari Bagaimana saya menavigasi ke topik dalam dokumentasi Vim karena itulah satu-satunya jawaban praktis yang dapat diberikan oleh siapa pun. Seseorang memang dapat berdebat bahwa penjelasan yang lebih mendalam untuk pertanyaan itu dapat diberikan (seperti yang baru saja saya lakukan), dan seandainya Anda berargumen bahwa , alih-alih memberikan respons (yang sekarang dihapus), saya mungkin akan mengatakan "Anda" benar, maaf atas kesalahan "dan membukanya kembali ;-)
Bagaimanapun, untuk menggambarkan secara singkat konvensi dengan beberapa contoh:
:help w
- pemetaan mode normal untuk w
(case-sensitive);
:help g8
- pemetaan mode normal untuk g8
;
:help v_o
- Pemetaan mode visual untuk o
; mode lain adalah c
untuk baris perintah dan i
untuk memasukkan;
:help CTRL-W
- pemetaan mode normal untuk <C-w>
;
:help i_CTRL-W
- Masukkan pemetaan mode untuk <C-w>
;
:help CTRL-W_CTRL-I
- pemetaan mode normal untuk <C-w><C-i>
;
:help i_CTRL-G_<Down>
- masukkan pemetaan mode untuk <C-g><Down>
.