'.
私はvimのコマンドが好きです。から:help '.
:
'. `.
[ジャンプ先] 最後の変更が行われた位置。位置は、変更が開始された場所またはその近くです。
Ok。しかし、ここに私の問題があります。autocmd
関数を使用して、ファイルヘッダーに「最終変更」行を追加します。したがって、すべての書き込みの後'.
、「実際の」最後の変更ではなく、ファイルヘッダーに移動します。私の現在の解決策は、現在の編集ポイントを でマークすることを忘れないようにして、そこに戻るma
ことができるようにすることです。'a
私はときどき忘れますが、覚えていても、あと数回のキーストロークです。
私の理想的な解決策は、vimに動きを覚えないように指示するある種のコマンドです。関数がジャンプする前にこのコマンドを送信しautocmd
て、最後に変更された行を書き込み、関数が終了した後にキャンセルすることができautocmd
ます。そうすれば、関連付けられている場所'.
は変更されません。ただし、より効率的な他のオプションについてはオープンです。
見たい場合は、 が で行うことを次に示しautocmd
ます:w
。
function! UpdateHeader()
let b:winview = winsaveview()
" This is where I'd put the command to ignore future movements
"The periods concatenate all the arguments into one command.
"Silent! suppresses errors, usually 'pattern not found'
"The 1,6g means search only lines 1 thru 6
"Search for File Name: followed by anything
"'s'ubstitute
"Substitute in 'File Name: ' and the results of the expand command, on the
"current filename
execute "silent! 1," . 6 . "g/File Name:.*/s//File Name: " . expand("%")
execute "silent! 1," . 6 . "g/Last Modified:.*/s//Last Modified: " . strftime("%d-%m-%Y")
" This is where I'd put the command to start remembering movements again
call winrestview(b:winview)
endfunction