Wikia

Vim Tips Wiki

Save buffer without changing Last Modified attribute

Talk0
1,613pages on
this wiki
Revision as of 06:03, July 13, 2012 by JohnBot (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Tip 1001 Printable Monobook Previous Next

created 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.

Since I

:map <F3> :w<CR><C-G>

I also

:map <S-F3> :call WritePreserveMtime()<CR><C-G>

CommentsEdit

Around Wikia's network

Random Wiki