sponsor Vim development Vim logo Vim Book Ad

ferallastchange.vim : FORK of lastchange.vim; Automatic update of timestamp line in file.

 script karma  Rating 5/2, Downloaded by 1968  Comments, bugs, improvements  Vim wiki

created by
Robert KellyIV
 
script type
utility
 
description
Update the last modification time of the file if an appropriate string is found in the first 20 lines of the file.

This is a fork of lastchange.vim and is based On Srinath Avadhanula's <email in file> work in lastchange.vim (v1.0 dated Sat Mar 30 04:00 PM 2002 PST; VIMSCRIPT #259)


Changes: From lastchange.vim v1.0

This is now an almost proper vim60 plugin.

Time stamp can be defined by setting g:flastchangetimeformat to the desired string for strftime().

Example: (from my .vimrc)
" [Feral:166/03@13:11] How I like ferallastchange.vim setup
let g:flastchangeleader = '\\date\t\t'
" Condense `Pacific Daylight Time` into `PDT` and tack that onto the end of our
" time stamp format string
let g:flastchangetimeformat = '%a, %d %b %Y %H:%M '.substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')

NOTE how format %Z is special cased and replaced with a shortened string. I.e. `Pacific Daylight Time` becomes `PDT`. This is also done in the default time format string.

Slightly more robust checking to see if we should operate; to speed up writing when we have nothing to do or can't do anything, etc.;


Simplified and fixed, (then removed altogether) RemoveLastHistoryItem(); (could muck up search pattern)

Remed out :MOD and :NOMOD commands; I have never used them; Just unrem if wanted...

:sub method remed; Currently uses a setline, hopefully more efficient.

Limitation:
The search to find the timestamp messes with the jumplist; I do not want it to; will fix when I know how!
Updating the timestamp is part of undo, thus you have to undo twice after a :w (Once to undo the timestamp and again to undo whatever it is you wanted to undo.)

NOTE: v1.1 (initial; no longer available) had a FATAL boo boo in my attempt to
get the timestamp updating out of undo. It changes undolevels to -1 (and then
sets it back to what it was), this has the undesired effect of flushing your
undo information for the file when ever you write. NOT at all what I had
intended. If you use v1.1 now, please update to v1.2 ASAP. My sincere apologies
for any work lost as the result of this bungle.
 
install details
Drop in plugin directory.
Make sure you are using lastchange.vim OR ferallastchange.vim but NOT BOTH.
 

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
ferallastchange.vim 1.23 2005-04-28 6.0 Robert KellyIV Improved/Fixed cursor restore. Screen should not jump; ever.
ferallastchange.vim 1.2 2003-07-05 6.0 Robert KellyIV Thanks to Asier for pointing out messing with undolevels is not at all what I had intended.
BUG FIX:
    * no longer messes with undolevels.
Changes:
    * Changed method used to change the time stamp (now using setline() );
    * removed RemoveLastHistoryItem()
Limitation:
    * You have to undo twice after just :w now (first time to undo the timestamp
        change, the second time to undo whatever it was you wanted to undo.)
ip used for rating: 142.132.191.50

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
   
Vim at Github