Bu / devamı ile silinir satırları yanmadan vim'deki yanmış metni nasıl değiştiririm?
Özetle, vnoremap p "_dPgörsel olarak seçilen metnin üzerine "*, değiştirilen metinle birlikte kayıt defterine yazmadan yapıştırmak için kullanılır . Bu şekilde, sonraki görsel olarak seçilen macunlar aynı tutulur.
Bu remap , karakteristik olarak görsel bir seçimin satır sonuna kadar gitmesi dışında beklendiği gibi çalışır . Bunu koşullu olarak ele almanın bir yolunu bulmaya çalışıyorum, böylece:
- bu özel durumda, yapmak
"_dp - aksi takdirde, yap
"_dP
vnoremap pBu özel durumu kontrol eden bir vimscript işlevini düşünüyorum , yani "görsel seçim karakteristikse ve imleç satırın sonundaysa" ve buna göre çalıştır.
meta - vimscript cevap ise, belki de StackOverflow'a göndermeliyim?
Güncelleme
Şununla çalışır:
vnoremap <expr> p (getregtype() ==# 'v' && col(".") == col("$") - 1 ? '"_dp' : '"_dP')
col("'>"kullanıyorum birine önceki görsel seçimi kullanarak tutar şu anda vecol('$')döndürüyor 'son sütun + 1'.