Yapamazsın.
İşte ne için C kaynak kodu <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;
type
Değişkenin nereden alındığından tam olarak emin değilim , bunu görmek istemiyordum, ama asıl nokta, "bu anahtar bu işleve eşlendi" demek için gerçek bir tesis olmadığıdır. Temelde sadece bir fonksiyonu ile struct
eşler char
ve ikinci tuş vuruşunun ( <C-i>
) uygulanması basit bir çirkinliktir!
Bu, her şeyin Lisp'te olduğu ve özel eşlemelerinizin Emacs'ın varsayılan eşlemelerinden farklı olmadığı Emacs'tan farklıdır. Ancak Vim'de, V kodunda hiçbir zaman açığa çıkmayan C işlevlerine karşı eşleşen C kodu tarafından sağlanan "sihirli" eşlemelere sahipsiniz. Her zaman Vim'in daha iyi bir fikre sahip olduğunu söylerim, ancak Emacs daha iyi bir uygulamaya sahiptir ;-)
Tek yol, yardım dosyalarında aramaktır. Bu yüzden bunu herkesin verebileceği tek pratik cevap olduğu için Vim'in belgelerindeki konulara nasıl gidebilirim ? Bir gerçekten (ben sadece yaptığım gibi) sorunun daha derinlemesine açıklama verilebilir iddia ve iddia vardı olabilir o yerine (şimdi silinmiş) yanıtı verme, muhtemelen 'Size" derdim yeniden doğru, hata için üzgünüm "ve yeniden açtı ;-)
Her halükarda, bazı örneklerle sözleşmeleri kısaca açıklamak için:
:help w
- normal mod eşlemesi w
(büyük / küçük harfe duyarlı);
:help g8
- için normal mod eşlemesi g8
;
:help v_o
- için görsel mod eşleme o
; diğer modlar c
komut satırı ve i
ekleme içindir;
:help CTRL-W
- için normal mod eşlemesi <C-w>
;
:help i_CTRL-W
- için mod eşleme ekle <C-w>
;
:help CTRL-W_CTRL-I
- için normal mod eşlemesi <C-w><C-i>
;
:help i_CTRL-G_<Down>
- için mod eşleme ekle <C-g><Down>
.