在Vim中插入时间戳的最佳方式吗?在Vim中插入时间戳的最佳方式吗?(Best way to ins

2019-05-13 09:03发布

的EditPad精简版有一个很好的功能(CTRL - E,CTRL - I),其插入一个时间标记,例如“2008-09-11 10时34分53秒”到你的代码。

什么是让Vim中这一功能的最好方法是什么?

(我通过SSH在Linux服务器上使用的Vim 6.1。在当前形势下我们一些共享一个登录,所以我不希望创建的主目录的缩写,如果有另一种内置的方式来获得时间戳。 )

Answer 1:

http://kenno.wordpress.com/2006/08/03/vim-tip-insert-time-stamp/

尝试过了,它的作品在我的Mac:

:r! date

生产:

Thu Sep 11 10:47:30 CEST 2008

这个:

:r! date "+\%Y-\%m-\%d \%H:\%M:\%S"

生产:

2008-09-11 10:50:56


Answer 2:

为了让跨平台工作,只是把你的下面vimrc

nmap <F3> i<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc>
imap <F3> <C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR>

现在,您只需按F3 VI / Vim的内部的任何时间,你会得到一个时间戳像2016-01-25 Mo 12:44在光标处插入。

对于可用参数的完整说明检查C函数的strftime文档() 。



Answer 3:

为什么每个人都使用:r! ? 找到一个空行,并键入!!date从命令模式。 保存按键!

[NB这将管电流线成标准输入,然后替换用命令输出线; 因此“找到一个空行”的一部分。]



Answer 4:

作为扩展@Swaroop CH的回答,

^R=strftime("%FT%T%z")

是一个更紧凑的形式,也将打印时区(实际上是从UTC的差别,在ISO-8601兼容的形式)。

如果您更喜欢使用外部工具出于某种原因,

:r !date --rfc-3339=s

会给你一个完整的RFC-3339兼容的时间戳; 使用ns代替s为斯波克状精度,并通过管tr ' ' T使用大写字母T代替日期和时间之间的空间。

你也可能会发现它有用知道

:source somefile.vim

将读取从命令somefile.vim :这样一来,你可以设置映射等的自定义设置,然后当你使用该帐户VIM加载它。



Answer 5:

看一看,以致力于尖端时间标记插入/更新上vim.wikia。



Answer 6:

,R! 日期

然后,您可以添加格式date命令(男子日期),如果你想完全一样的格式,并添加为VIM别名以及

,R! 日期+ “\%Y - \%米 - \%d \%H:\%M:\%S”

产生你在你的例子显示格式(日期在外壳没有使用\%,但只%,VIM当前文件的名称代替%,所以你需要转义)。

你可以在你的.vimrc添加地图它自动把命令,例如,每次按F3时间:

:map <F3> :r! date +"\%Y-\%m-\%d \%H:\%M:\%S"<cr>

(编辑的从上方:))(编辑:改变文字部分代码,从而使

<F3> 

可显示)



Answer 7:

对于UNIX时间戳:

:r! date +\%s

您也可以在此命令,如果你经常使用它映射到一个VIM键(例如F12):

把这个在你的.vimrc:


map  <F12> :r! date +\%s<cr>


Answer 8:

时间戳脚本



Answer 9:

从Vim的维基 。

我用这个,而不必移动我的手打一个F键:

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

现在,在插入模式下,只需键入TDS和,只要我打空格键或回报,我得到的日期,并继续输入。

我就把%b在那里,因为我喜欢看到月份名称。 在%F给我的东西按日期排序。 我可能会改变,要%Y%m%d所以有单位之间没有任何字符。



Answer 10:

不包括由以前的答案另一种快速的方法:类型 -

!!日期



Answer 11:

Unix的使用:

!!date

Windows上,使用:

!!date /t

更多细节:看到Insert_current_date_or_time



文章来源: Best way to insert timestamp in Vim?
标签: vim vi