created September 23, 2005 · complexity basic · author Craig Emery · version 5.7
There are times when I change something in a file and I've no need for the file's "last modified" time to be changed. For example, I might be updating a comment in a source file, and I don't need my build system to re-compile the file.
If your build of Vim has +python you can define the following function and call it instead of using the write command.
function! WritePreserveMtime() python << EEOOFF import vim import os.path import os fpath = vim.current.buffer.name atime = os.path.getatime(fpath) mtime = os.path.getmtime(fpath) vim.command("w") os.utime(fpath, (atime, mtime)) EEOOFF endfunction
See :help python for information on calling Python from inside Vim.
:map <F3> :w<CR><C-G>
:map <S-F3> :call WritePreserveMtime()<CR><C-G>