VIM:保存时如何更新文本

时间:2011-03-09 19:42:36

标签: vim configuration header editor

我正在努力养成使用一个编辑器(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?谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

根本不要这样做。

您的版本控制系统存储相同的信息。如果你没有使用它,请开始。

答案 1 :(得分:1)

您可以使用@%添加当前文件名:

keepjumps exe '1,' . n . 's#^\(.\{,10}Filename:\).*#\1' .
      \ ' ' . @% . '#e'

不知道文件大小。

更不用说你实际上会通过添加文件大小来修改文件大小,因此可能无法做到正确。