2015-04-20 19 views
5

Vim'de, bir atlama komutu verirseniz, ör. G, sonra imleci Ctrl-o kullanarak atlamadan önce olduğu yere geri koyabilirsiniz. Ancak, 40j veya Ctrl-f gibi bir hareket komutu verdiysem, atlama listesini değiştirmedikleri için Ctrl-o imlecimi bir önceki noktaya geri döndürmez. Bu gibi hareketleri kaldıracak bir komut var mı? Böyle bir komut yolu olduğunu Ctrl-o eserler içinde jenerik olarak uygulanabilir olmadığından, sırt 40j sizi alır böyle 40k olarakSon hareketi geri almak için bir Vim komutu var mı, ör. <count> j veya Ctrl-f?

Açık olmak gerekirse, ben, bir "el" cevabını aramıyorum.

Ayrıca, yerleşik komut bunu yapmazsa, herhangi bir eklenti yapar mı?

cevap

5

Böyle, bunu sağlayacak varsayılan hareketlerini geçersiz kılabilir: Aynı uygulayan, hangi da reljump plugin var

" j, k   Store relative line number jumps in the jumplist. 
nnoremap <expr> k (v:count > 1 ? "m'" . v:count : '') . 'k' 
nnoremap <expr> j (v:count > 1 ? "m'" . v:count : '') . 'j' 

. Bununla birlikte, dikkatli olun, çünkü aşırı yapmak, atlama listesinin kullanışlılığını azaltacaktır. Bu nedenle Ctrl-F/Ctrl-B'yi değiştirmeye karşı tavsiye ederim.

0

m' ile bir işaret oluşturabilir ve ardından `` ile geri dönebilirsiniz.

+1

Bu çözüm, Ctrl-o'nun çalışma biçiminde geçerli olmamakla birlikte, işaretin manuel olarak ayarlanmasını gerektirir. –