Vim'de .son normal mod komutunu tekrar edebilirim; Örneğin:
dd.
bir çizgiyi iki kez siler.
Ama eğer yazarsam
5j.
imleç 10 satır aşağı hareket etmiyor. Son normal mod komutunu, özellikle bir hareketi nasıl tekrarlarım?
Vim'de .son normal mod komutunu tekrar edebilirim; Örneğin:
dd.
bir çizgiyi iki kez siler.
Ama eğer yazarsam
5j.
imleç 10 satır aşağı hareket etmiyor. Son normal mod komutunu, özellikle bir hareketi nasıl tekrarlarım?
Yanıtlar:
vanilya vim'de bile yapılabilir, ancak uygulanabilirlik kullanım durumunuza bağlıdır, yani. Ne kadar sıklıkla tekrarlamanız gerekecek çünkü tekrarlanabilir hale getirmek için birkaç tuşa basılması gerekiyor.
Örnek olarak 5 satır aşağı ilerleyerek şunları yapabilirsiniz:
:norm 5j, imleci 5 satıra indirir@:hareketi tekrarlamak için kullanın:norm normal anlamına gelir, aşağıdaki herhangi bir dize normal modda tuş vuruşlarınız olarak kabul edilir
qa(Makroyu kayıt içine kaydeder a, kendi kaydınızı seçebilirsiniz qb, qc)5jq (makroyu kaydetmeyi bitir)@aKayıtlı işleminizi tekrarlamak için ( aseçtiğiniz kayıt ismi ile değiştirin , örn. @b, @c)Makro kurmak için daha fazla manevi güç gerektirir, ancak en son işlemler tarafından geçersiz kılmadan farklı kayıtları farklı işlemlerde saklayabilmeniz açısından daha fazla tekrarlanabilir.
İle değişiklikleri tekrarlayabilirsiniz .. Hareketler ;komutla tekrarlanabilir . Bu komut yeni görünüyor ve diğer yanıtlarda belirtilen repmo.vim komut dosyasına benzer bir şey yapıyor.
Örneğin, bir sonraki saniyeye geçmek için ctuşuna basın 2fc. Sonra tekrar yapmak için, sadece yazın ;.
Değiştirmek istediğiniz satırları seçebilir ve son normal nokta komutunu çalıştırabilirsiniz.
v5j .............. visual select next 5 lines
:'<,'>norm! . normal mode execute over selection last command '.'
;yeni değil Bu standart bir vi komutu. Vi, sonf/F/t/Thareketin türünü ve hedef karakterini (ancak sayısal argümanı değil) hatırlar ve;tekrarlar. Ancak diğer hareketleri tekrarlamıyor.