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?
utilities
programming
vim
Louis Salin
źródło
źródło
Odpowiedzi:
Ś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ą:
lub liczba słó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: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
par
pomocą polecenia:źródło
Uważam, że NERDtree jest niezbędny do poruszania się po mojej bazie kodu. Oprócz tego warto zainwestować trochę czasu w biegłość w poruszaniu się po buforach / oknach.
źródło
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-TPoza 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.
źródło
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
Command-t To sprawia, że przeglądanie plików jest dziecinnie proste i jest bardzo inteligentne .
fuzzyfinder Używam tego głównie do buforowania buforów i zmiany bieżącego katalogu.
NERDTree To najlepsza wtyczka do przeglądarki plików dla vima.
XPTemplate Najlepsza wtyczka szablonów na świecie.
rails.vim Jeśli robisz rzeczy dla deweloperów , jest to niezbędne.
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
źródło
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.
źródło
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
źródło
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.
źródło
Zwykle przygotowuję
screen
sesję 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 musiszscreen
tego robić; możesz to zrobić za pomocą różnych okien terminali lub kart w terminalu Multitab. Uważam, żescreen
jest 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ąscreen
sesją.screen
jest 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 about
Screen.'
) 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,u
aby cofnąć, a następnie naciśnij:r
i 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.,
:make
Zrobi kompilację, a obsługa listy poprawek jest dobrze ustalona. Możesz więc zrobić,:copen
aby 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ć,
:lmake
aby 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.:lopen
otworzy listę lokalizacji dla bieżącego okna.źródło