VIM'den grep kullanılırken sonuçlara nasıl atlanır?


32

Grim eklentisini VIM'e kullanırken, şu dizgede bulunan bir dizgenin bütün oluşumları için geçerli dizinde arama yapabilirim.

:grep Ryan *.txt

Bu şöyle bir şey çıktı:

file1.txt:3:Ryan was here
file2.txt:10:Ryan likes VIM
file3.txt:5:superuser.com is a fav of Ryan
(1 of 3): Ryan was here
Press ENTER or type command to continue

Enter tuşuna basarsam, beni editörüme geri götürür. Gerçekten yapmak istediğim, bu dosyalardan birini açıp dizenin bulunduğu yere atlayabilmek. Bunu yapmanın bir yolu var mı? 1 of 3Bölüm beni Sonuçlar arasında sekmesine bir yolu var düşündürüyor ama bana için hangi komutları bilmiyorum. Birisi buna ışık tutabilir mi?

Yanıtlar:


34

ENTER tuşuna bastığınızda, file1.txt dosyasının 3. satırına bakıyor olmalısınız. Bir sonraki maça atlamak için, yürü :cn; önceki maça atlamak için yürütün :cp. Yürütme :copeneşleşme listesini içeren bir pencere açar. İmleci istediğiniz eşleşmeye getirin ve bu eşleşmeye atlamak için ENTER'a basın.

Kullanma hakkında daha fazla bilgi için :grep, bkz.

:help grep
:help quickfix.txt

Yazma :cnve :cpileri hareket ettirmek için ve bu eşleştirmeleri kullanmak bu nedenle QuickFix listesinde geri, zor olabilir:

nmap <silent> <C-N> :cn<CR>zv
nmap <silent> <C-P> :cp<CR>zv

Ayrıca, :grepkomut bir eklenti değildir; Vim'in bir parçası.


Harika cevap, teşekkürler! Btw, vim grep ile klasörler arasında özyinelemeli bir arama yapabilir misiniz?
Marplesoft

Bir Unix sistemi üzerinde çalıştığınız sürece, Vim'e kabuktan çalıştırılan :grepbir grepkomuta ekleyeceğiniz değişkenleri ekleyebilirsiniz . Böylece, geçerli dizindeki ve altındaki tüm .txt dosyalarında yinelemeli bir arama yapabilirsiniz :grep -R --include=*.txt Ryan .. Ayrıca Vim'in :vimgrepkomutunu kullanarak yinelemeli bir arama yapabilirsiniz , ancak argümanlar farklıdır ve nadiren kullanıyorum çünkü daha yavaş :grep.
garyjohn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.