Jakie są najlepsze narzędzia programistyczne ogólnego przeznaczenia, które uzupełniają Vima? [Zamknięte]


22

Od jakiegoś czasu korzystam z Vima jako mojego edytora tekstów i mam wrażenie, że robię wszystko, co w mojej mocy. Korzystam z tagów ctag do znakowania mojej bazy kodu do nawigacji i używam grep (choć nieefektywnie), aby znaleźć, gdzie są stosowane określone metody. Ale mam wrażenie, że istnieje kilka bardzo przydatnych narzędzi, o których nie wiem, które mogłyby zwiększyć produktywność.

Jaki jest najlepszy stos oprogramowania, którego mógłbym użyć do programowania ogólnego, który uzupełniałby Vima? Jak nawigujesz w bazie kodu, uruchamiasz make, wypychasz zmiany w systemie kontroli źródła itp.? Czy masz drugą konsolę otwartą obok Vima?


2
Vim sam. Być może nie używasz odpowiednich wtyczek / skryptów do tego zadania. Zależy to od tego, jaki programujesz, jaki język, jakie inne narzędzia potrzebujesz i tak dalej.
bitek,

Nie określam żadnego języka, aby nie wpływać na otrzymywane odpowiedzi. Naprawdę nie szukam wtyczek Vima, chociaż są one przydatne.
Louis Salin,

Ta prezentacja była dla mnie bardzo przydatna: zmievski.org/2010/06/vim-for-programmers-on-slideshare
gabe.

Zrobiłem to wiki społeczności. Uświadomiłem sobie, że nie ma jednej najlepszej odpowiedzi na moje pytanie. Dziękujemy wszystkim za odpowiedzi!
Louis Salin,

Odpowiedzi:


8

Świetną cechą vima jest łatwość integracji z istniejącymi poleceniami powłoki. Niektóre z najbardziej przydatnych narzędzi zewnętrznych to te, które są zawarte w coreutils i innych prostych narzędziach do manipulacji tekstem. Na przykład możemy uzyskać liczbę wierszy w pliku za pomocą:

:! wc -l %

lub liczba słów:

:! wc -w %

Tutaj będzie działać dowolne polecenie działające w powłoce. Można to skutecznie połączyć z poleceniem :read( :r), aby umieścić dane wyjściowe polecenia w pliku. Na przykład:

:r !wc -l %

Umieści liczbę wierszy słów w edytowanym pliku.

Kolejną zaletą tego jest zastąpienie obecnie edytowanego tekstu wynikiem jednego z tych poleceń. Na przykład możesz sformatować cały plik za parpomocą polecenia:

:% !par


4

W jakimkolwiek języku chcesz użyć funkcji o nazwie ctags, która pozwala przeglądać definicje źródeł. Wymaga to zewnętrznego narzędzia do generowania plików TAGS, które są używane przez VIM do wykrywania lokalizacji różnych definicji kodów w projekcie.

Pobierz żywe narzędzie ctags , działa w wielu językach i jest bardzo proste w użyciu.

z VIM :help ctags

ctags utworzy indeks wszystkich identyfikatorów w drzewie źródłowym. Następnie możesz użyć poleceń znaczników do poruszania się po drzewie źródłowym. zob :help tag-commands. Najłatwiej jest umieścić kursor nad słowem kluczowym i nacisnąć CTRL- ]. Aby wrócić do miejsca, z którego przybyłeś, naciśnij CTRL-T

Poza tym warto przyjrzeć się niektórym poradom i ulepszeniom VIM omówionym tutaj , jest to bardzo obszerna dyskusja na temat niektórych rzeczy, które można zrobić, aby poprawić wrażenia vimmer.


W swoim pytaniu wspomniałem, że używam tagów, ale i tak dziękuję za odpowiedź! :)
Louis Salin,

4

Vim to bardzo potężne narzędzie, jestem pewien, że wszyscy już o tym wiecie. Zaczniesz uzyskiwać wzrost wydajności, używając vima w ciągu kilku tygodni. Ale nigdy nie nasycisz swojej wiedzy o Vimie. Tak więc, po pierwsze, zawsze szukam nowych i skutecznych sposobów robienia rzeczy w Vimie. Jest facet o imieniu Derek Wyatt, który dokonał świetnych screencastów na temat korzystania z Vima, a także na temat wtyczek, których używa.

Kilka wtyczek, których używam

  1. Command-t To sprawia, że ​​przeglądanie plików jest dziecinnie proste i jest bardzo inteligentne .

    Wtyczka Command-T zapewnia niezwykle szybki, intuicyjny mechanizm otwierania plików przy minimalnej liczbie naciśnięć klawiszy. Nazywa się „Command-T”, ponieważ jest inspirowany przez okno „Przejdź do pliku” powiązane z Command-T w TextMate.

  2. fuzzyfinder Używam tego głównie do buforowania buforów i zmiany bieżącego katalogu.

    FuzzyFinder zapewnia wygodne sposoby szybkiego osiągnięcia żądanego bufora / pliku / polecenia / zakładki / znacznika. FuzzyFinder wyszukuje według wzoru rozmytego / częściowego, na który przekonwertował wprowadzony wzór

  3. NERDTree To najlepsza wtyczka do przeglądarki plików dla vima.

    Drzewo NERD umożliwia eksplorację systemu plików oraz otwieranie plików i katalogów. Przedstawia system plików w postaci drzewa, którym manipulujesz za pomocą klawiatury i / lub myszy. Umożliwia także wykonywanie prostych operacji na systemie plików.

  4. XPTemplate Najlepsza wtyczka szablonów na świecie.

    Mechanizm fragmentów kodu dla Vima z biblioteką fragmentów. XPTemplate pozwala pisać kody w płynny, szybki i wygodny sposób.

  5. rails.vim Jeśli robisz rzeczy dla deweloperów , jest to niezbędne.

    TextMate może być najnowszym szaleństwem w tworzeniu aplikacji Ruby on Rails, ale Vim jest wieczny. Ta wtyczka oferuje następujące funkcje programowania aplikacji Ruby on Rails.

  6. NerdCommenter Ułatwia komentowanie w dowolnym kodzie.

A to tylko kilka wtyczek, których używam. Aby pobrać wszystkie wtyczki za pomocą mojego vimrc, sprawdź moje pliki dot


3

Jest świetna wtyczka do VIM, która sprawdza składnię Syntastic . Dostępnych jest również wiele innych narzędzi do zarządzania plikami, budowania itp. Przejdź do IRC #vim na freenode.net, jest tam wielu pomocnych ludzi.


3

moim ulubionym jest cscope. Jeśli skompilowałeś vima z obsługą cscope, możesz bezpośrednio używać poleceń cscope z VIM. np. wyszukiwanie dołączonych plików, funkcji wywoływanych przez funkcję xyz itp. Próbowałem tego z bardzo dużym repozytorium kodu źródłowego. To bardzo pomaga.

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


1

Jeśli programujesz w dowolnym języku obsługiwanym przez GCC (C, C ++, Java, Fortran), Clewn to świetna wtyczka, która integruje debugger GDB z VIM. Odkryłem, że jest to jeden z najlepszych dostępnych interfejsów do GDB.


0

Zwykle przygotowuję screensesję dla każdego projektu. Vim jest w oknie 0 i używam okna 1 do sesji powłoki. Jeśli piszę w języku, który ma przyzwoitą REPL, zwykle uruchamiam to w oknie 2. Oczywiście nie musisz screentego robić; możesz to zrobić za pomocą różnych okien terminali lub kart w terminalu Multitab. Uważam, że screenjest bardziej stabilny niż inne alternatywy: jeśli aplikacja terminalu ulegnie awarii, możesz po prostu uruchomić inny terminal i ponownie połączyć się z nadal działającą screensesją. screenjest również bardzo szybki w nawigacji, gdy się go nauczysz (podobnie jak sam vim).

Najczęściej używam sesji powłoki do skomplikowanych czynności kontroli wersji, takich jak zmiana bazy danych lub scalanie: prostsze rzeczy można zrobić z linii poleceń vima (np. :!git commit % -m 'Added info aboutScreen .') lub przy użyciu zbiegającego się dodatku. Uważam, że uciekinierzy :Gmove(zmiana nazwy bieżącego bufora zarówno w vimie, jak i w indeksie git) i :Gdiff(wywołanie vimdiff na bieżącym buforze z poprzednim punktem w jego historii) są szczególnie przydatne. Możesz także wykonywać takie czynności, jak budowanie komunikatu zatwierdzenia w buforze scratch, kopiowanie tekstu z różnych części kodu, a następnie zatwierdzanie za pomocą:%!git commit -F /dev/stdin

Użyję również sesji powłoki do testowania funkcjonalnego / integracji, jeśli dotyczy to wszystkiego, nad czym pracuję, na przykład, jeśli piszę narzędzie wiersza polecenia.

Funkcja szybkiej poprawki Vima jest przydatna do debugowania, chociaż wydaje się, że wymagany jest inny dodatek dla każdego języka, w którym chcesz pracować. Wydają się także używać różnych technik wywoływania, mapowania na klawisze funkcyjne lub sekwencje klawiszy zaczynające się od \lub ,, lub do niestandardowych poleceń lub przez automatyczne wywoływanie po zapisaniu bufora. Do tej pory tak naprawdę nie zadałem sobie trudu, aby to przekopić, a po prostu przeczytałem test jednostkowy lub wyniki włókien w buforze scratch, używając np :r !python -m doctest whatever.py. Zmodyfikuj kod, przełącz się z powrotem do bufora scratch, uaby cofnąć, a następnie naciśnij :ri strzałkę w górę (przez większość czasu), aby odzyskać to polecenie. Ale może warto poświęcić trochę czasu na poszukiwanie dodatku do tego, w zależności od języka, w którym pracujesz.

W przypadku popularnych skompilowanych języków, takich jak C, Java, itp., :makeZrobi kompilację, a obsługa listy poprawek jest dobrze ustalona. Możesz więc zrobić, :copenaby wyświetlić bufor szybkiej poprawki. Wyświetli listę błędów, po jednym w wierszu; naciśnięcie Enterlinii spowoduje przeskok drugiego okna do tego miejsca w tym pliku.

Jeśli pracujesz z wieloma projektami naraz, możesz zrobić, :lmakeaby lista błędów była zapisywana na liście lokalizacji : jest to jak lista szybkich poprawek, ale jest skojarzona z jednym oknem, a nie jest singletonem w twoim instancja vim. :lopenotworzy listę lokalizacji dla bieżącego okna.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.