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
)5j
q
(makroyu kaydetmeyi bitir)@a
Kayıtlı işleminizi tekrarlamak için ( a
seç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 c
tuş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
/T
hareketin türünü ve hedef karakterini (ancak sayısal argümanı değil) hatırlar ve;
tekrarlar. Ancak diğer hareketleri tekrarlamıyor.