Vim'i tamamlamak için en iyi genel amaçlı programlama araçları nelerdir? [kapalı]


22

Vim'i bir süredir metin editörüm olarak kullanıyorum ve bir şey yapmak için uzun bir yol kat ettiğimi hissediyorum. Gezinme için kod tabanımı etiketlemek için ctags kullanıyorum ve belirli yöntemlerin nerede kullanıldığını bulmak için grep'i (verimsiz olmasına rağmen) kullanıyorum. Ancak, beni daha üretken hale getirebilecek, bilmediğim çok yararlı araçlar olduğunu hissediyorum.

Vim'i tamamlayacak genel programlama için kullanabileceğim en iyi yazılım yığını nedir? Kod üssünde nasıl gezinirsiniz, koşunuz, kaynak kontrol sisteminizde değişiklikleri zorlarsınız, vb. Vim'in yanında açık bir 2. konsolunuz var mı?


2
Vim'in kendisi. Belki de iş için doğru eklentileri / scriptleri kullanmıyorsunuzdur. Ne tür bir programlama yaptığınıza, hangi dile, hangi araçlara ihtiyacınız olduğuna vb.
bitek

Aldığım yanıtları etkilememek için herhangi bir dil belirtmiyorum. Kullanışlı olmalarına rağmen Vim eklentileri aramıyorum.
Louis Salin


Bunu topluluk wiki yaptım. Soruma tek bir en iyi cevap olmadığını anladım. Cevaplarınız için herkese teşekkürler!
Louis Salin,

Yanıtlar:


8

Vim'in harika bir özelliği, mevcut kabuk komutlarıyla entegrasyon kolaylığıdır. En kullanışlı dış araçlardan bazıları coreutils ve diğer basit metin işleme araçlarına dahil olanlardır . Örneğin, bir dosyadaki satır sayısını aşağıdakilerle alabiliriz:

:! wc -l %

veya kelime sayısı:

:! wc -w %

Kabuk üzerinde çalışan herhangi bir komut burada çalışacaktır. Bu komutun çıktısını dosyaya koymak için :read( :r) komutuyla güçlü bir şekilde birleştirilebilir . Örneğin:

:r !wc -l %

Satır sayısı kelimesini düzenlediğiniz dosyaya yerleştirir.

Bunun bir başka avantajı, düzenlemekte olduğunuz metni bu komutlardan birinin çıktısıyla değiştirmektir. Örneğin par, komutu çalıştırarak tüm dosyayı birlikte biçimlendirebilirsiniz :

:% !par

5

NERDtree'yi kod tabanımda gezinmek için vazgeçilmez buluyorum. Bunun yanında, tamponlarınız / pencerelerinizde dolaşmak için yetkin olmak için biraz zaman harcamak gerçekten faydalı olacaktır.


Bu harika eklentiye referans için +1. ( github.com/scrooloose/nerdtree )
noffle

4

Diliniz ne olursa olsun, kaynak tanımlarına göz atmanızı sağlayan ctags adlı bir özellik kullanmak isteyeceksiniz . Bu, bir projedeki çeşitli kod tanımlarının konumlarını keşfetmek için VIM tarafından kullanılan TAGS dosyalarını üretmek için harici bir araç gerektirir.

Coşkulu ctags aracını alın, birçok dilde çalışır ve kullanımı kolaydır.

VIM'den :help ctags

ctags , kaynak ağacındaki tüm tanımlayıcıların bir dizinini oluşturur. Kaynak ağacınızın etrafında gezinmek için etiket komutlarını kullanabilirsiniz. bkz :help tag-commands. En kolay imleci bir anahtar kelimenin üzerine getirip CTRL- tuşuna basın ]. Basından geldiğiniz yere geri dönmek için CTRL-T

Bunun ötesinde, burada tartışılan VIM ipuçlarından bazılarına ve iyileştirmelere bakmak isteyebilirsiniz , bu, bir vimmer deneyimini geliştirmek için yapılabilecek bazı şeyler hakkında çok kapsamlı bir tartışmadır.


Sorumu kullanarak ctags kullandığımdan bahsettim ama yine de cevap için teşekkürler! :)
Louis Salin

4

Vim çok güçlü bir araçtır, hepinizin bunu bildiğinden eminim. Birkaç hafta içinde vim kullanarak verimlilik artışı elde etmeye başlayacaksınız. Ama Vim hakkındaki bilginizi asla doyurmayacaksınız. Bu yüzden, biri için her zaman Vim'de iş yapmanın yeni ve etkili yollarını arıyorum. Vim'in kullanımıyla ve ayrıca kullandığı eklentilerle ilgili harika yorumlar yapan Derek Wyatt adında bir adam var .

Kullandığım eklentilerden birkaçı

  1. command-t Bu, dosyalara göz atmanızı kolaylaştırır ve çok akıllıdır .

    Command-T eklentisi, dosyaları en az sayıda tuş vuruşuyla açmak için son derece hızlı, sezgisel bir mekanizma sağlar. "Command-T" olarak adlandırılır, çünkü TextMate'deki Command-T'ye bağlı "Dosyaya Git" penceresinden ilham alır.

  2. fuzzyfinder Bunu daha çok arabellekleri sınırlamak ve geçerli dizini değiştirmek için kullanıyorum.

    FuzzyFinder istediğiniz tampon / dosya / komut / yer imi / etiketine hızlıca ulaşmak için uygun yollar sunar. FuzzyFinder girilen bir deseni dönüştürdüğü bulanık / kısmi deseni araştırır

  3. NERDTree Bu, vim için en iyi dosya tarayıcı eklentisidir.

    NERD ağacı, dosya sisteminizi keşfetmenize, dosya ve dizin açmanıza izin verir. Dosya sistemini size klavye ve / veya fare ile değiştirdiğiniz bir ağaç biçiminde sunar. Ayrıca, basit dosya sistemi işlemlerini yapmanızı sağlar.

  4. XPTemplate Dünyadaki en iyi şablonlama eklentisi.

    Kod parçacıkları kütüphanesiyle Vim için kod parçacıkları motoru. XPTemplate, kodları sorunsuz, hızlı ve rahat bir şekilde yazmanıza izin verir.

  5. rails.vim Eğer dev rails yaparsanız, bu vazgeçilmezdir.

    TextMate, Ruby on Rails uygulamalarını geliştirmek için en son çılgınlık olabilir, ama Vim sonsuza kadar. Bu eklenti Ruby on Rails uygulama geliştirme için aşağıdaki özellikleri sunar.

  6. NerdCommenter Her türlü koda yorum yapmayı kolaylaştırır.

Ve bunlar kullandığım eklentilerden sadece birkaçı, Bütün eklentileri vimrc ile indirmek için dotfiles'i kullan


3

VIM için sözdizimi sözdizimi denetimi yapan harika bir eklenti var . Dosya yönetimi, inşaat, vb. İçin de pek çok başka araç var.


3

en sevdiğim cscope. Cscope desteğiyle vim'i derlediyseniz, doğrudan VIM'den cscope komutlarını kullanabilirsiniz. örneğin dahil dosyaları aramak, xyz işlevi tarafından çağrılan işlevler vb. Çok büyük bir kaynak kod deposuyla denedim. Çok yardımcı olur.

http://cscope.sourceforge.net/cscope_vim_tutorial.html


1

Eğer GCC (C, C ++, Java, Fortran) tarafından desteklenen dillerden herhangi birinde programlama yapıyorsanız , Clewn GDB hata ayıklayıcısını VIM'e entegre eden harika bir eklentidir. Aslında GDB'ye olan en iyi arayüzlerden biri olduğunu gördüm.


0

Genelde screenher proje için bir oturum ayarladım . Vim, pencere 0'da ve kabuk oturumu için pencere 1'i kullanıyorum. İyi bir REPL olan bir dilde kodluyorsam, genellikle 2. pencerede çalıştırırım. Tabii ki, bunu yapmanız gerekmez screen; farklı terminal pencereleriyle veya çoklu görev terminalindeki sekmelerle yapabilirsiniz. screenDiğer alternatiflerden daha kararlı olduğunu biliyorum : Eğer terminal uygulamanız çökerse, başka bir terminale başlayıp devam etmekte olan screenoturumunuza yeniden bağlanabilirsiniz . screenÖğrendikten sonra da gezinmek için çok hızlıdır (vim'in kendisi gibi).

Kabuk seansını çoğunlukla yeniden oluşturma veya birleştirme gibi karmaşık sürüm kontrol etkinlikleri için kullanıyorum: vim'in komut satırından (örn. :!git commit % -m 'Added info aboutEkran .') veya kaçak eklentiyi kullanarak daha basit şeyler yapılabilir . Kaçak olanları ( :Gmovevim ve git dizinindeki geçerli arabelleği yeniden adlandırın) ve :Gdiff(mevcut arabelleği tarihinin önceki bir noktasıyla vimdiff'ı çağırın) özellikle yararlı buluyorum. Scratch buffer içinde bir taahhüt mesajı oluşturmak, kodunuzun çeşitli bölümlerinden metin olarak kopyalamak ve daha sonra:%!git commit -F /dev/stdin

Çalıştığım her şeye uygulanabilirse, örneğin bir komut satırı yardımcı programı yazıyorsam, işlevsel / entegrasyon testi için kabuk oturumunu da kullanacağım.

Eğer iş isteyebilirsiniz her dil için gerekli farklı bir eklenti var gibi görünüyor olsa Vim'ın QuickFix işlevselliği ayıklama konusunda yararlıdır. Onlar da haritalama ile başlayan fonksiyon tuşları veya anahtar dizileri için, çağırma çeşitli teknikler kullanmak gibi görünüyor \ya ,, veya özel komutlara veya bir tampon kaydedildiğinde otomatik olarak çağrılarak. Şimdiye kadar bunu kesmek için canımı sıkmadım ve sadece örn :r !python -m doctest whatever.py. Kodu değiştirin, çizik arabelleğine geri dönün, ugeri almak için, daha sonra vurun :rve o komutu geri almak için yukarı ok (çoğu zaman). Ancak, hangi dilde çalıştığınıza bağlı olarak, bunun için bir addon aramak için zaman ayırmaya değer olabilir.

C, java, vb. Gibi popüler derlenmiş diller :makeiçin bir derleme yapılacak ve hızlı düzeltme listesi desteği iyi oluşturulmuştur. Böylece daha sonra hızlı :copendüzeltme arabelleğini görüntülemek için yapabilirsiniz. Her satırda bir hata listesi gösterecek; Enterbir satıra basmak diğer pencerenizi o dosyadaki noktaya atlayacaktır.

Bir kerede birden fazla projeyle çalışıyorsanız :lmake, konum listesinde saklanacak hataların listesini düzenlemek için yapabilirsiniz : bu, hızlı düzeltme listesi gibidir ancak içinde bir tekil olmak yerine tek bir pencereyle ilişkilendirilir vim örneği. :lopengeçerli pencere için bir konum listesi açacaktır.

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.