":ab"如何以及何时映射被触发?

时间:2015-03-27 20:25:00

标签: vim vim-plugin

ab系列命令(iabcab)可以节省大量时间。但是,目前还不清楚何时会被触发。例如,使用_vimrc中的以下设置:

iab sj <c-r>=strftime("20%y-%m-%d %H:%M:%S")<cr>
cab cab drop C:\users\llinfeng\dropbox

对于ci为“模式指标”,如果按Insert(或{{<space>,则会在<ESC>模式下插入完整的时间标记输入<C-[>后立即输入1}},sj}。对于第二个映射,如果在键入Command-line后立即点击\(或<space>),则将以drop模式插入完整目录。

因此,似乎对于iab,以下字符将触发通过iab定义的缩写的扩展 - 映射:

  1. <space>
  2. <esc>(或一般逃脱)
  3. 理想情况下,可以猜测<tab>密钥也会触发这种扩展。但是,对于我的情况(set expandtab tabstop=4 shiftwidth=4,即一个“tab”键== 4个空格“),不会触发任何扩展。
  4. 然后,对于cab,以下内容可能会触发扩展:

    1. \
    2. <space>
    3. ...
    4. 让我感到困惑的是:“铺设在核心”的东西是什么触发了通过ab - 映射定义的缩写的扩展?并且,对于Insert模式和Command-line模式,是否存在可以触发此类扩展的完整密钥列表?

      谢谢!

      一切顺利,

      -Linfeng

1 个答案:

答案 0 :(得分:3)

这些都在vimdocs中详尽记录:

具体做法是:

  

只有在键入非关键字字符时才会识别缩写。   这也可以是结束插入模式的<Esc>或结束a的<CR>   命令。插入结束缩写的非关键字字符   在扩展缩写之后。一个例外是角色<C-]>,   用于扩展缩写而不插入任何额外的   字符。

但它有很多段落,详细说明了哪些条件触发了不同类型的缩写。特别要注意

之间的区别
  • 完整ID(foog3-1
  • end-id(#i..f$/7
  • 非身份证明(def#4/7$

缩写