的EditPad精简版有一个很好的功能(CTRL - E,CTRL - I),其插入一个时间标记,例如“2008-09-11 10时34分53秒”到你的代码。
什么是让Vim中这一功能的最好方法是什么?
(我通过SSH在Linux服务器上使用的Vim 6.1。在当前形势下我们一些共享一个登录,所以我不希望创建的主目录的缩写,如果有另一种内置的方式来获得时间戳。 )
的EditPad精简版有一个很好的功能(CTRL - E,CTRL - I),其插入一个时间标记,例如“2008-09-11 10时34分53秒”到你的代码。
什么是让Vim中这一功能的最好方法是什么?
(我通过SSH在Linux服务器上使用的Vim 6.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
为了让跨平台工作,只是把你的下面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文档() 。
为什么每个人都使用:r!
? 找到一个空行,并键入!!date
从命令模式。 保存按键!
[NB这将管电流线成标准输入,然后替换用命令输出线; 因此“找到一个空行”的一部分。]
作为扩展@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加载它。
看一看,以致力于尖端时间标记插入/更新上vim.wikia。
,R! 日期
然后,您可以添加格式date命令(男子日期),如果你想完全一样的格式,并添加为VIM别名以及
,R! 日期+ “\%Y - \%米 - \%d \%H:\%M:\%S”
产生你在你的例子显示格式(日期在外壳没有使用\%,但只%,VIM当前文件的名称代替%,所以你需要转义)。
你可以在你的.vimrc添加地图它自动把命令,例如,每次按F3时间:
:map <F3> :r! date +"\%Y-\%m-\%d \%H:\%M:\%S"<cr>
(编辑的从上方:))(编辑:改变文字部分代码,从而使
<F3>
可显示)
对于UNIX时间戳:
:r! date +\%s
您也可以在此命令,如果你经常使用它映射到一个VIM键(例如F12):
把这个在你的.vimrc:
map <F12> :r! date +\%s<cr>
时间戳脚本
从Vim的维基 。
我用这个,而不必移动我的手打一个F键:
:iab <expr> tds strftime("%F %b %T")
现在,在插入模式下,只需键入TDS和,只要我打空格键或回报,我得到的日期,并继续输入。
我就把%b
在那里,因为我喜欢看到月份名称。 在%F
给我的东西按日期排序。 我可能会改变,要%Y%m%d
所以有单位之间没有任何字符。
不包括由以前的答案另一种快速的方法:类型 -
!!日期
!!date
!!date /t