ユース ケースは、世界中のすべての (vim) 開発者 (IMHO) によって共有されています。ソース ファイルの書き込み操作ごとにタグとタイムスタンプを更新したいと考えています。Barry Arthur の助けを借りた私の試みは次のとおりです。
書き込みごとに更新する文字列の例
# 2013-01-09 01:04:31.0 +0100 / Me <me@domain.tld>
vimrc コード
" if not maped, :x don't call UpdateTimestamp()
map :x :wq
function! UpdateTimestamp()
let old_pos = getpos('.')
let old_search = histget("search", -1)
g/^\(#\|\/\/\)\s\+\d\{4\}-\d\{2\}-\d\{2\}\s\+\d\{2\}:\d\{2\}:\d\{2\}\.\d\+\s\++\d\{4\}\s\+\/\s\+Me <me@domain.tld>.*/s/.*/\="# " . strftime('%F %H:%M:%S.0 %z') . " \/ Me <me@domain.tld>"/
exe "normal /".old_search
call setpos('.', old_pos)
endfunction
au BufWrite * call UpdateTimestamp()
解決しない問題
- タグの更新時に元に戻す履歴を変更しないでください (可能な場合)
- 書き込み時の画面変更の位置
- パターンが見つからない場合、画面に不要なエラーが表示される
質問
簡単: これらの問題を解決するには?