created May 1, 2003 · complexity basic · author Dorai Sitaram · version 5.7
The following lines in vimrc will display the time of day and calender date on the editor status line:
set ruler set rulerformat=%55(%{strftime('%a\ %b\ %e\ %I:%M\ %p')}\ %5l,%-6(%c%V%)\ %P%)
It doesn't update time if you issue no keystrokes, but as soon as you do anything at all in the editor, you will get the current time.
Comments[]
My vimrc has the following (but it can cause a slowdown).
set laststatus=2 "black status line at bottom of window if has("win32") set statusline=%<%f%h%m%r%=%{strftime(\"%I:%M:%S\ \%p,\ %a\ %b\ %d,\ %Y\")}\ %{&ff}\ %l,%c%V\ %P else set statusline=%<%f%h%m%r%=%{strftime(\"%l:%M:%S\ \%p,\ %a\ %b\ %d,\ %Y\")}\ %{&ff}\ %l,%c%V\ %P endif
I didn't add this to the status line, but I did add it to the pheader (printheader), which uses the same syntax.
That way when I print the file, I can also print the current clock time.
set pheader=%<%f%h%m%40{strftime(\"%I:%M:%S\ \%p,\ %a\ %b\ %d,\ %Y\")}%=Page\ %N
(filename, time, page N)
I have another proposal: Print the last modification time (not the printing time).
set pheader=%<%f%h%m\ %40{strftime(\"%c\",getftime(expand(\"%%\")))}%=Page\ %N
From Vim 8 onwards, new timers make it easy to autoupdate the statusbar, for example, every 4 seconds:
let timer = timer_start(4000, 'UpdateStatusBar',{'repeat':-1}) function! UpdateStatusBar(timer) execute 'let &ro = &ro' endfunction