2014-12-13 54 views
1

我想有一个特殊的文件,其中每行一个时间戳开始,现在我可以用例如缩写做到这一点:如何在新行的开头添加自动文本?

:iab <expr> ts strftime("%F %T") 

,如果我手动键入ts当我添加一个新的生产线工作。但有什么方法可以在开始时自动创建带有预填充时间戳的新行,并且如果该行上没有文本,则根本不包括时间戳。

试图为自己制作一份审计日志,以便在编程期间从我的环境中捕获任何中断,并且确实希望只键入文本并为其添加时间戳。

回答

3

如果你想插入是自动的,你需要重写命令,用于插入一个新行,通常o

:nnoremap <buffer> <expr> o 'o' . strftime("%F %T") 

为了使这个只适用于你的特殊的文件,使用<buffer>和如果您计划更多的定制,或特殊的语法高亮通过

:autocmd BufRead /path/to/audit/log nnoremap ... 

定义这个命令,更好地定义自定义文件类型:help new-filetype一个nd把映射在~/.vim/ftplugin/myfiletype.vim

+0

这很好。当我插入模式时,并没有真正覆盖,只是按下输入...但现在猜测它已经足够好了。 – Evgeny 2014-12-13 18:51:36

+1

谢谢!您也可以添加':imap's,但一般的建议是避免长时间处于插入模式。而你创建的映射越多,它干扰的概率就越高。 – 2014-12-13 18:55:17

+0

使用 imap ''。 strftime(“%s”) 工程就像一个魅力!这只是针对这个充当中断日志的特殊文件,所以不应该影响其他文件。 – Evgeny 2014-12-13 18:59:57

相关问题