ab
系列命令(iab
和cab
)可以节省大量时间。但是,目前还不清楚何时会被触发。例如,使用_vimrc
中的以下设置:
iab sj <c-r>=strftime("20%y-%m-%d %H:%M:%S")<cr>
cab cab drop C:\users\llinfeng\dropbox
对于c
和i
为“模式指标”,如果按Insert
(或{{<space>
,则会在<ESC>
模式下插入完整的时间标记输入<C-[>
后立即输入1}},sj
}。对于第二个映射,如果在键入Command-line
后立即点击\
(或<space>
),则将以drop
模式插入完整目录。
因此,似乎对于iab
,以下字符将触发通过iab
定义的缩写的扩展 - 映射:
<space>
<esc>
(或一般逃脱)<tab>
密钥也会触发这种扩展。但是,对于我的情况(set expandtab tabstop=4 shiftwidth=4
,即一个“tab”键== 4个空格“),不会触发任何扩展。然后,对于cab
,以下内容可能会触发扩展:
\
<space>
让我感到困惑的是:“铺设在核心”的东西是什么触发了通过ab
- 映射定义的缩写的扩展?并且,对于Insert
模式和Command-line
模式,是否存在可以触发此类扩展的完整密钥列表?
谢谢!
一切顺利,
-Linfeng
答案 0 :(得分:3)
这些都在vimdocs中详尽记录:
具体做法是:
只有在键入非关键字字符时才会识别缩写。 这也可以是结束插入模式的
<Esc>
或结束a的<CR>
命令。插入结束缩写的非关键字字符 在扩展缩写之后。一个例外是角色<C-]>
, 用于扩展缩写而不插入任何额外的 字符。
但它有很多段落,详细说明了哪些条件触发了不同类型的缩写。特别要注意
之间的区别foo
,g3
,-1
)#i
,..f
,$/7
)def#
,4/7$
)缩写