Bağlamlara bağlı olarak çeşitli yaklaşımlar vardır.
: Sen @ Kent'in Yanıt başına kadar, search()
kullanabilirsiniz Bu {stopline}
argüman destekler, geçerli hat ötesinde önlemek için
endif. Varsa akım hattında (foo Eğer imleci konumlandırmak zorunda kalacak, böylece (sen line('.')
aracılığıyla geçebildiği). Ama sadece (veya arkaya) tek yönde arama yapar.
Yani bu sesler if getline('.') =~ '('
daha iyi bir testtir gibi. Bu bir does Geçerli satırınile düzenli ifade karşılaştırması. Bunun yerine match()
'u da kullanabilirsiniz (tüm API belgeleri ve örnekler BTW için :help
aracılığıyla herhangi bir fonksiyona bakın) veya regexp olmayan bir stridx()
(daha hızlı olabilir, ancak daha az okunabilir).
:/searchtarget çubuğunu yapmak başarılı olursa: Yine
endif bu /search
gibi bir maç konuna search()
için bir kullanım, gibi geliyor. Ancak, ikincisini (:normal
ile) kullanabilir ve komutun öncesinde ve sonrasında imleç konumlarını (getpos('.')
aracılığıyla elde edilen) karşılaştırarak bir atlama olup olmadığını kontrol edebilirsiniz.
:: normal/ 'ile arama yaptıktan sonra imleç konumunun değişip değişmediğini kontrol etmekle ilgili bir uyarı: Dosyada yalnızca bir eşleşme varsa ve aramanın başında imleç konumunda olduğunda arama, dosyanın sonunu kaydırır (seçeneğin açık olduğunu varsayar) ve geçerli imleç konumuna gider. Bu durumda, arama gerçekte başarılı olacaktır, ancak değiştirilmiş bir imleç pozisyonunun kontrol edilmesi, bunun olmadığını (yanlış) gösterecektir. –