Vim'de '.
komutunu beğeniyorum. :help '.
Gönderen:Vim'in bir değişikliği hatırlamasını engelleme
'. `.
[e atla] son değişiklik yapıldığı pozisyon. Konum, değişikliğin başladığı yerdedir.
Tamam. Ama benim sorunum: Dosya başlığımda "son değiştirilmiş" satır eklemek için autocmd
işlevini kullanıyorum. Yani, her yazmadan sonra, '.
beni "gerçek" son değişikliğime değil, dosya başlığımma getiriyor. Şu anki çözümüm şu anki düzenleme noktasını ma
ile işaretlemeyi hatırlıyorum, bu yüzden ona geri dönmek için 'a
yapabilirim. Bazen unutuyorum, hatta hatırladığımda, başka bir çift tuş vuruşu.
İdeal çözümüm, hareketleri hatırlamamayı söyleyen bir tür komut olurdu. autocmd
işlevinin etrafında atlama yapmadan, son değiştirilen satırı yazmadan önce bu komutu gönderebilir ve autocmd
işlevi bittikten sonra iptal edebilirim. Bu şekilde, '.
ile ilişkili konum değiştirilmeyecektir. Ancak, daha verimli olan diğer seçeneklere açığım.
Bunu görmek isterseniz, autocmd
'un :w
numaralı telefonunda ne var.
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
Mükemmel. Teşekkürler. – ravron
Bu çözümü uygulamaya çalışan herkes için bir not: "keepjumps" komutu, metnin gerçek modifikasyonunun gerçekleştiği yerde, yani ": s" komutunda ": g" komutuyla çalıştırılır: "execute" sessiz! 1, ". 6. "g/Dosya Adı:. */keepjumps s // Dosya Adı:". ("%") 'Genişletme. – ravron
Bir not daha: önceki yorumda yazılan komut, ''. '' Nin ayarlanmasını engelliyor. Bununla birlikte, yine de atlama listesine ekliyor. Bunu önlemek için * sessiz kaldıktan hemen sonra "keepjumps" ı tekrar ekleyin! – ravron