如何在新行的行首添加自动文本?

时间:2014-12-13 17:29:57

标签: vim

我想要一个特殊的文件,其中每一行都以时间戳开头,现在我可以使用缩写例如:

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

如果我在添加新行时手动键入ts,则此方法有效。但是有没有办法在开头自动创建带有预填充时间戳的新行,如果该行上没有文本则根本不包括时间戳。

尝试为自己创建一个审核日志,以便在编程期间捕获环境中的任何中断,并且真的只想键入文本并将其加上时间戳。

1 个答案:

答案 0 :(得分:3)

如果您希望自动插入,则需要覆盖用于插入新行的命令,通常是o

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

要使其仅适用于您的特殊文件,请使用<buffer>并通过

定义此命令
:autocmd BufRead /path/to/audit/log nnoremap ...

如果您计划更多自定义或特殊语法突出显示,请更好地定义自定义文件类型并编写:help new-filetype并将映射放在~/.vim/ftplugin/myfiletype.vim中。