因此,我正在使用vim-latex
套件,并希望最后一次变更每次编辑/保存时都会动态更改信息。如果您使用其中一个模板,则可以在序言中找到它,例如
% File: raid.tex
% Created: Tue Apr 01 09:00 AM 2014 E
% Last Change: Tue Apr 01 09:00 AM 2014 E
%
目前它根本没有改变。
谢谢!
编辑:更新添加示例模板文件
<+ +> !comp! !exe!
% File: !comp!expand("%:p:t")!comp!
% Created: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp!
% Last Change: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp!
%
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\author{Author Name}<++>
\title{<++>}
\begin{document}
\maketitle
<++>
\end{document}
使用模板生成的示例文件:
% File: samplefile.tex
% Created: Tue Apr 01 03:00 PM 2014 E
% Last Change: Tue Apr 01 03:00 PM 2014 E
%
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\author{Author Name}
\title{<++>}
\begin{document}
\maketitle
<++>
\end{document}
谢谢!
答案1
将以下行添加到您的.vimrc
文件或~/.vim/ftplugin/tex
" --- Timestamps for TeX files -------------------------------------------
function! LastModified()
if &modified
let save_cursor = getpos(".")
let n = min([8, line("$")])
keepjumps exe '1,' . n . 's#^% Last modified: \zs.*# ' . strftime('%H:%M %A, %-d %B %Y') . '#e'
call histdel('search', -1)
keepjumps call setpos('.', save_cursor)
endif
endfun
autocmd BufWritePre *.tex call LastModified()
答案2
上述答案对我来说不起作用,所以我只是分享我编写的宏作为“解决方法”:
let @z=":3\<CR>4wc$,z\<Esc>'':w | :\<BS>sleep 2000ms | :q\<BS>\<BS>q\<CR>"
我专门编写了这个程序以便与我的 latexsuite 模板一起使用,因此它将光标移到第 3 行,移动到前一个时间戳的开头,并使用以下映射插入新的时间戳:
inoremap ,z <C-R>=strftime("%c")<CR>
然后它将光标移回其先前的位置,然后保存并关闭文件。sleep 命令可能没有必要。