我想使用iab
映射将时间标记插入到我的Tex
文档中。 (这样我就可以知道在将笔记转换为tex文件时在哪里查找笔记。)
我尝试在c:\vim\vimfiles\ftplugin\tex.vim
中定义以下内容:
" iab mapping for inserting time stamps.
iab <buffer> sj % <c-r>=strftime("20%y-%m-%d %H:%M:%S")<cr><ESC>o
但是,在插入模式下按sj<space>
会给我以下内容:
% 2015-04-06 09:23:48
i sj 2015-04-06 09:23:48
只有按sj<CR>
才会插入所需的输出:
% 2015-04-06 09:27:57
<blank line>
<cursor here, in insert mode>
有没有人知道为什么应该插入suth i sj 2015-04-06 09:23:48
?我怎么能阻止它?
一切顺利,
-Linfeng
答案 0 :(得分:2)
您提到您在c:\vim\vimfiles\ftplugin\tex.vim
中定义了缩写,它似乎位于Vim的安装路径中。您可能应该在用户目录中定义它,以避免在更新时丢失这些更改;这在Vim FAQ 26.1解释。
您的缩写在这里工作正常。您的缩写可能是触发您设置的另一个缩写;您可以将iab
替换为inorea
来避免这种情况。您还可以使用:iab
列出所有现有缩写,并使用:imap
插入模式映射,以检查哪一个可能会干扰。