Harici komutları kullanmadan kod projelerinde gezinme


9

Komuta, Vim komutları / sorgu araç kutusunu toplamak ya da bir kod tabanını gezinmek için, mod aramak çalışıyorum olmadan Ctags veya diğer harici araçları kullanarak. Ctags harika, ancak destek takıldığınız geliştirme ortamına bağlı olarak değişebilir. Sadece Vim bilgisine güvenmek istiyorum.


4
Belki "ctags" yerine "harici araçlar" demelisiniz, çünkü ilk önerim cscope olacaktır.
muru

1
Kullandığım bir şey komut gd. Bu, imleci imlecin altındaki değişkenin yerel bildirimine götürür.
nitishch

muru Herhangi bir harici araç kullanmak istemiyorum. Ne öğrenmek çalışıyorum verimli bir şekilde sadece Vim komutlarını kullanarak bir kod tabanı gezinme teknikleri vardır. Bunun yapılabileceğini biliyorum, ama açıkçası benden daha derin Vim bilgisi gerektiriyor. Muhtemelen iyi bir SE sorusu çok açık uçlu olduğu için ama başka nereye bakacağımı bilmiyorum.
user1332148

Yanıtlar:


11

"Aramayı dahil et" böyle bir araçtır:

[I and ]I      " search current buffer and included files for
               " the word under the cursor, skipping comments
:ilist foo     " same as above but for 'foo'
:ilist /foo    " same as above but for a word containing 'foo'

"Dahil arama" ile ilgili, "tanım arama" da ilginç:

[D and ]D      " search current buffer and included files for
               " the definition of the symbol under the cursor
:dlist foo     " same as above but for definition of 'foo'
:dlist /foo    " same as above but for a definition containing 'foo'

:dlist /       " list all definitions from the current buffer
               " and included files

Her iki araç da dosya türü eklentileriniz tarafından ayarlanabilen veya ayarlanamayan çeşitli seçeneklere bağlıdır.

Bkz :help include-search.


Ayrıca kullanabilirsiniz gdve gDhafif sürümleri olarak [Dve ]D.

Bkz :help gd.


Geçerli arabellekte, aşağıdaki komut her fonksiyon tanımını ve satır numarasını listeler:

:g/func/#

Bkz :help :g.


:grepve :vimgreponların sonucu ile kullanılabilen QuickFix listesine sadece beslenir çünkü eğer, ayrıca yararlıdır :cn, :cp... ve çok kullanışlı QuickFix penceresinde görüntülenir.

Bkz :help :grep, :help :vimgrepve :help quickfix.


QuickFix listesi / pencerenin konuşan yazdığım bu işlevi sonuçlarını görüntülemek için (diğerleri çalışmalarına dayanarak) [I, ]I, :ilist, [D, ]Dve :dlistQuickFix listesinde / pencerenin. Tabii ki YMMV.


Kesinlikle bir gezinme aracı olmasa da, önizleme penceresini birlikte çalıştığım işlevin imzasına bakmak için çok yararlı buluyorum.

Bkz :help preview-window.


Bahsedilen…

Vim, kodlama stilinize veya başka bir şeye uymayan veya uymayabilecek birkaç normal ifadenin ötesinde kodunuz hakkında hiçbir şey bilmiyor. Bu, kod navigasyonunun ctags, cscope veya GNU GLOBAL gibi harici araçların yardımıyla daha iyi yapıldığı anlamına gelir.


5

Kod (Vim ve harici dahil) gezinmek için bir çok yol vardır, ben hala onları keşfetmek. Günlük işlerde kullandığım şey:

  • Proje dosyalarında metin grevleme ve hızlı düzeltme penceresi üzerinden gezinme (Greping için gümüş arama kullanıyorum).
  • Dil ile ilgili eklentileri kullanarak, javascript, ruby, go, programın modülleri arasında atlamaya izin verdiklerini biliyorum (javascript eklentisinde gf-command
  • Ctrl+O, Ctrl+I- navigasyonun "geçmişi" nde ileri veya geri atlama
  • g; - dosyada en son düzenlenen yere atla
  • Belirli yerlere "yer imleri" koymak için işaretlerin kullanılması. '[some_letter]Komut ile işaret koyabilirsiniz , eğer harf büyükse, herhangi bir dosyadan (arabellek) erişilebilecek işareti alırsınız.
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.