":ab" 映射将如何以及何时被触发?
How and when would the ":ab" mapping be triggered?
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
为"mode-indicator",如果在Insert
模式下按下<space>
(或<ESC>
, <C-[>
) 在输入 sj
之后。对于第二个映射,如果在键入 drop
.
后立即点击 \
(或 <space>
),则完整目录将以 Command-line
模式插入
因此,对于iab
,似乎以下字符将触发通过iab
-映射定义的缩写的扩展:
<space>
<esc>
(或一般转义)
- 理想情况下,人们可能会猜测
<tab>
键也应该触发这样的扩展。但是,对于我的情况(set expandtab tabstop=4 shiftwidth=4
,即一个 "tab" 键 == 4 个空格"),不会触发扩展。
然后,对于 cab
,以下可能会触发扩展:
\
<space>
- ??
令我困惑的是:触发通过 ab
-映射定义的缩写词扩展的 "laying at the core" 是什么东西?并且,对于 Insert
模式和 Command-line
模式,是否存在可以触发此类扩展的完整键列表?
谢谢!
祝一切顺利,
-临风
vimdocs 中对此进行了详尽的记录:
具体来说:
An abbreviation is only recognized when you type a non-keyword character.
This can also be the <Esc>
that ends insert mode or the <CR>
that ends a
command. The non-keyword character which ends the abbreviation is inserted
after the expanded abbreviation. An exception to this is the character <C-]>
,
which is used to expand an abbreviation without inserting any extra
characters.
但它继续了好几段,准确地详细说明了哪些条件会触发不同类型的缩写。特别注意
之间的区别
- 完整 ID(
foo
、g3
、-1
)
- 结束 ID (
#i
, ..f
, $/7
)
- 非 id(
def#
、4/7$
)
缩写
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
为"mode-indicator",如果在Insert
模式下按下<space>
(或<ESC>
, <C-[>
) 在输入 sj
之后。对于第二个映射,如果在键入 drop
.
\
(或 <space>
),则完整目录将以 Command-line
模式插入
因此,对于iab
,似乎以下字符将触发通过iab
-映射定义的缩写的扩展:
<space>
<esc>
(或一般转义)- 理想情况下,人们可能会猜测
<tab>
键也应该触发这样的扩展。但是,对于我的情况(set expandtab tabstop=4 shiftwidth=4
,即一个 "tab" 键 == 4 个空格"),不会触发扩展。
然后,对于 cab
,以下可能会触发扩展:
\
<space>
- ??
令我困惑的是:触发通过 ab
-映射定义的缩写词扩展的 "laying at the core" 是什么东西?并且,对于 Insert
模式和 Command-line
模式,是否存在可以触发此类扩展的完整键列表?
谢谢!
祝一切顺利,
-临风
vimdocs 中对此进行了详尽的记录:
具体来说:
An abbreviation is only recognized when you type a non-keyword character. This can also be the
<Esc>
that ends insert mode or the<CR>
that ends a command. The non-keyword character which ends the abbreviation is inserted after the expanded abbreviation. An exception to this is the character<C-]>
, which is used to expand an abbreviation without inserting any extra characters.
但它继续了好几段,准确地详细说明了哪些条件会触发不同类型的缩写。特别注意
之间的区别- 完整 ID(
foo
、g3
、-1
) - 结束 ID (
#i
,..f
,$/7
) - 非 id(
def#
、4/7$
)
缩写