用 Jekyll 写文章的时候需要输入创建时间,之前写的几篇都是手动打的, 感觉太土了,就在网上搜了搜有没有什么办法打印出当前时间。

果然 Vim 就是强大,有个缩写功能可以实现,下面我就来介绍下这个功能。

~/.vimrc 中添加如下代码:

iab <key> <expansion>

就可以在 Vim 的插入模式中体检自动补全的功能了。

例如:

iab #i #include (输入 "#i" 和空格就会补全成 "#include")
iab #d #define  (输入 "#d" 和空格就会补全成 "#define")
iab s struct    (输入 "s" 和空格就会补全成 "#struct")
iab t typedef   (输入 "t" 和空格就会补全成 "#typedef")

同时,你也可以为经常写错的单词配置缩写,这样就能自动纠正拼写错误了:

iab teh the
iab seperate separate

缩写只有在你输入一个非关键字符(注:关键字符包括字母、数字、以及_) 的时候才生效。 可以是在插入模式中输入<ESC>, 或者结束命令时输入<CR>。 同时,这个非关键字符也会出现在补全后的单词后面。 只有一个例外就是<C-]>, 用这个字符来终结缩写时,不会有额外的字符出现。

例如:

:ab hh  hello

"hh" 会补全为 "hello"

"hh" 会补全为 "hello"

现在,让我们回到最初的问题,如何能快速的输入当前时间?

iab xdate <c-r>=strftime("%Y-%m-%d %H:%M:%S")<cr> 

这样,当我们在插入模式中,输入 xdate, 然后输入 <space> 或者 <C-]>, 就会补全为当前时间了。