Bạn không thể.
Đây là mã nguồn C để làm gì <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;
Tôi không hoàn toàn chắc chắn nơi type
biến được chọn, tôi không cảm thấy muốn tìm kiếm, nhưng vấn đề là, không có cơ sở thực sự nào để nói "khóa này được ánh xạ tới chức năng này". Về cơ bản, nó chỉ là một struct
ánh xạ char
tới một chức năng và việc thực hiện tổ hợp phím thứ hai ( <C-i>
) chỉ đơn giản là sự xấu xí đặc biệt!
Điều này khác với Emacs, trong đó (tôi đoán) mọi thứ đều ở Lisp và ánh xạ tùy chỉnh của bạn không khác với ánh xạ mặc định của Emacs. Nhưng trong Vim, bạn có các ánh xạ "ma thuật" được cung cấp bởi mã C, ánh xạ chống lại các chức năng C không bao giờ được hiển thị trong Vim. Tôi luôn nói rằng Vim có ý tưởng tốt hơn, nhưng Emacs có cách triển khai tốt hơn ;-)
Vì vậy, cách duy nhất là tìm kiếm nó trong các tập tin trợ giúp. Đây là lý do tại sao tôi đóng cái này như một bản sao của Làm thế nào để tôi điều hướng đến các chủ đề trong tài liệu của Vim vì đó là câu trả lời thực tế duy nhất mà bất cứ ai cũng có thể đưa ra. Người ta thực sự có thể lập luận rằng một lời giải thích sâu sắc hơn cho câu hỏi có thể được đưa ra (như tôi vừa làm), và bạn đã lập luận rằng , thay vì đưa ra câu trả lời (hiện đã bị xóa), tôi có thể đã nói "bạn" đúng, xin lỗi vì sai lầm "và mở lại ;-)
Bằng mọi giá, để minh họa ngắn gọn các quy ước với một số ví dụ:
:help w
- ánh xạ chế độ bình thường cho w
(phân biệt chữ hoa chữ thường);
:help g8
- ánh xạ chế độ bình thường cho g8
;
:help v_o
- ánh xạ chế độ trực quan cho o
; các chế độ khác c
dành cho dòng lệnh và i
chèn;
:help CTRL-W
- ánh xạ chế độ bình thường cho <C-w>
;
:help i_CTRL-W
- chèn ánh xạ chế độ cho <C-w>
;
:help CTRL-W_CTRL-I
- ánh xạ chế độ bình thường cho <C-w><C-i>
;
:help i_CTRL-G_<Down>
- chèn ánh xạ chế độ cho <C-g><Down>
.