我正在努力养成使用一个编辑器(Windows XP上的gVim 7.3)进行所有编程和开发任务的习惯。
当我使用以下方法保存时,我想更新任何打开文件中的标题:w
标题看起来像这样(在C文件中):
/* Filename: hello.c
* Filesize: 345 bytes
* Last Modified: Fri Feb 25, 2011 01:55PM
*/
我实际上已经通过在我的_vimrc文件中包含以下内容来了解如何更新Last Modified:
" If buffer modified, update any 'Last modified: ' in the first 20 lines.
" 'Last modified: ' can have up to 10 characters before (they are retained).
" Restores cursor and window position using save_cursor variable.
function! LastModified()
if &modified
let save_cursor = getpos(".")
let n = min([20, line("$")])
keepjumps exe '1,' . n . 's#^\(.\{,10}Last Modified:\).*#\1' .
\ strftime(' %a %b %d, %Y %I:%M%p') . '#e'
call histdel('search', -1)
call setpos('.', save_cursor)
endif
endfun
autocmd BufWritePre * call LastModified()
我的问题是,使用类似的方法,我如何才能更新Filename和Filesize?谢谢你的帮助。
答案 0 :(得分:3)
根本不要这样做。
您的版本控制系统存储相同的信息。如果你没有使用它,请开始。
答案 1 :(得分:1)
您可以使用@%
添加当前文件名:
keepjumps exe '1,' . n . 's#^\(.\{,10}Filename:\).*#\1' .
\ ' ' . @% . '#e'
不知道文件大小。
更不用说你实际上会通过添加文件大小来修改文件大小,因此可能无法做到正确。