Zaczynam się uczyć Vima i podążam za wskazówkami zawartymi w stackexchange. Zaczynam go używać w niektórych projektach zabawek i jestem z tym spoko.
Ale zacząłem się zastanawiać, jak możesz być produktywny bez ciągłego otwierania innych plików, aby wiedzieć, jak się nazywa ta klasa, jakie makro zawiera inne pliki itp. Itp.
Jakie są wspólne porady, które możesz udzielić?
vim
large-scale-project
Matias
źródło
źródło
Odpowiedzi:
Jednym z aspektów doświadczonych programistów, którzy przechodzą z IDE do środowiska konsoli / xterm, jest znalezienie zamiennika dla indeksowania obiektów kodu źródłowego (nazwy funkcji, zmienne). Uważam, że ogólnym terminem używanym w Microsoft Visual Studio jest Intellisense lub coś w tym rodzaju.
W świecie Unix / Linux, takim jak vim, jedno narzędzie używane, jeśli
ctags
lub popularna wielojęzyczna implementacja Open Source, bujne ctagi . Nie jestvim
specyficzny i jest obsługiwany przez wiele edytorów tekstów Unix, Linux, MS Windows, Mac OS, w tym Emacs, CRiSP, vile i wiele innych klonów vi, nedit, gedit, JED, UltraEdit, BBEdit i DreamWeaver (niektóre z nich są za pośrednictwem wtyczek innych firm).Poza tym, dobry projekt i przemyślany rozkład, organizacja większych projektów sprawia, że projekt jest zarządzalny, ponieważ istnieje tylko 1-2 oczywiste potencjalne miejsca, w których można znaleźć dowolną część informacji (
typedef
lubclass
definicji itp.).Używam również wielu instancji vima (często poprzez
view
przeglądanie plików źródłowych tylko do odczytu), a także ograniczonego użycia wielu buforów edycyjnych na instancję vima (głównie do przenoszenia lub refaktoryzacji kodu między plikami). Uważam, że używanie tylko kilku plików źródłowych otwartych na raz może pomóc na swój własny mały sposób, pozwalając mi skupić się na zadaniu pod ręką.źródło
Nie zamierzam brać udziału w debacie VIM vs. IDE. To chyba osobisty pref. Ale używam dużo VIM i dlatego uważam, że jest bardzo wydajny w użyciu VIM
Dwie części odpowiedzi:
Odp .: Większość rzeczy, które VIM pozwala na większość rzeczy, które możesz zrobić z IDE (nie próbuję umieścić każdej funkcji, ale tylko kilka nieoczywistych, które ograniczają wygląd vi)
możesz przejść przez prototypy, jeśli masz
ctags
włączone i to zrobiszctrl+{
Możesz otworzyć wiele okien jednocześnie śpiewając polecenie: sp „nazwa pliku”. Oczywiście czasami po prostu otwieram wiele terminali, aby ułatwić sobie życie.
Potężne podświetlanie składni. Domyślne, a także inne rzeczy. Ponadto, w przeciwieństwie do niektórych IDE, jeśli występuje niezgodność otwartych nawiasów, łańcuch lub nie pasują do zamkniętych, daje to bardzo wyraźne wskazanie. Dotyczy większości języków, a nie konkretnych.
Możesz wykonać linię poleceń za pomocą polecenia
":!make"
bez wychodzenia z okna.Przechodź znacznie szybciej w oparciu o słowo, w oparciu o wyszukiwanie (vi obsługuje regexp, jeśli jesteś dostępny), a możesz przechodzić { do } za pomocą
ESC %
Możliwe jest wykonywanie pracy w GDB podczas debugowania krokowego i utrzymywania vi (w innym oknie do pracy na kodzie). Gdy zdecydujesz się zmienić plik, możesz zrobić to ponownie i załadować go ponownie w GDB.
B. Wiele rzeczy znajdziesz w VIM
Wyszukiwanie i zamiana są zdecydowanie bardziej wydajne.
Możesz stworzyć swój własny wygląd i styl (czarny + zielony w przeciwieństwie do białego + niebieskiego) i, co ważniejsze, własne, potężne polecenie.
Wybierz blok pionowy. Spróbuj
ctrl+v
przesunąć kursor w pionie. To naprawdę niewyobrażalna funkcja!Brzmi głośno - ale spróbuj wyciąć / skopiować blok i trzeba go pominąć 30 razy! Nie wymaga to więcej wysiłku niż zrobienie tego 1 raz. Spróbuj także powtórzyć (nie cofnąć) czynność jeden lub wiele razy.
Automatyczne wcięcie, kontrola tabulatorów i automatyczny sposób konwertowania komentarzy w komentarze blokowe lub komentarze dotyczące określonej stylizacji.
Skuteczny konflikt scalania z vimdiff.
Najważniejsze w środowisku pracy opartym na konsoli jest to, że nigdy nie dotykaj myszy! więc jeśli jesteś szybki na klawiaturze - IDE nie są dobre.
Pracuj jednocześnie na wielu komputerach i serwerach! Nie wydaje się to oczywiste, ale czasami podczas pracy na serwerze logujesz się bezpośrednio na wielu komputerach i robisz różne rzeczy.
Odpowie na pytanie, jak postępować w vi, jeśli te funkcje są poważnie wymagające. Zobacz tę stronę Vimcast . oczywiście jest ich wiele.
Ale tak, większość rzeczy opartych na konsoli jest staromodna i w żaden sposób nie mówię nic przeciwko IDE.
źródło
:make
wbudowane polecenie, nawet go nie potrzebujesz!
(które dla tych, którzy nie używają vima, wykonuje polecenie na terminalu). Właśnie znalazłemctrl-v
kilka tygodni temu i teraz używam go stale, jest niezwykle przydatny.:make
jest to, że automatycznie przenosi Cię do pierwszego błędu i możesz nawigować po nim za pomocącn
icp
, patrz:help make
. Właściwie nie zdawałem sobie z tego sprawy, dopóki nie przejrzałem; Zwykle robię w innym oknie i pwd, wydaje się, że musisz być w tym samym pliku co Makefile, chociaż możesz umieścić go w katalogu src, aby przejść do katalogu głównego i tam zrobić.Moim zdaniem, Vim daje ci bardzo silny edytor z podstawowymi funkcjami, ale to do ciebie należy dopracowanie skryptów / dodatków, które najprawdopodobniej wykorzystasz w swoich projektach. Prawdopodobnie będą się różnić w zależności od tego, czy przeważnie edytujesz skrypty, dokumentację lub pliki, które należy skompilować.
Jako przykład mogę używać
zencoding
do okazjonalnego edycji html / css,snipmate
dla TextMate podobny fragmentów, a kilka Pythona związanych dodatków (pyflakes
,pep8
,vimpdb
, etc.) dla Pythona kodowania, czyli co robię najczęściej.Są też inne dodatki, których nie używam często, ale wciąż uważam je za pomocne, jak
Dpaste
iConqueTerm
.Jednak dla mnie najbardziej przydatne funkcje Vima to wbudowane funkcje (cofanie w czasie, szybka nawigacja, filtry zasięgu itp.) - rzeczy, których nie mogłem znaleźć (a przynajmniej nie są tak łatwo dostępne) ) w IDE. Kiedy więc skonfigurujesz Vima tak, aby posiadał fragmenty IDE, których naprawdę potrzebujesz (
snipmate
,ctags
...), możesz czerpać korzyści ze środowiska IDE i środowiska konsoli.Używam Vima tylko do konsoli, więc nie mogę powiedzieć, jak przydatne są te narzędzia w Gvimie.
Jednak pomimo całej dodatkowej dobroci wciąż biegam
!grep ...
lub^Z + find ...
co jakiś czas.źródło
Całe moje programowanie wykonuję w vimie. Uważam, że jest to łatwiejsze niż jakiekolwiek IDE, którego użyłem. Możesz mieć otwartych wiele plików jednocześnie, nawet na tym samym ekranie (przeglądaj zakładki i okna). Zwykle pracuję w X, więc mam kilka (6) otwartych ekranów xterm: jeden dla plików c w vimie (kilka na kartach), drugi dla nagłówków w vimie (także tabulatory), i okna inne niż vim: budowanie, debugowanie , konfiguracja itp. Nawet gdy korzystam z czystej konsoli, mogę używać kart, okien i składania kodu, aby zobaczyć, czego potrzebuję, i mogę budować, a nawet przeglądać strony podręczne bez wychodzenia z vima, wystarczy znać właściwe polecenia. I jest ich tak wiele, jestem pewien, że nie opanowałem nawet połowy z nich. I trudno jest przeszukać wyszukiwanie Vima i zastąpić je.
źródło
Wiele aplikacji na dużą skalę zostało (co najmniej dwie;) i, jak przypuszczam, wiele innych zostanie napisanych całkowicie w Vimie. IDE jako takie są wciąż dość nowoczesną innowacją , że tak powiem, .
Jednak brakuje trochę zwykłej wanilii vi (ouch) lub Vima. Znajomość Vima i myślenie na wiele sposobów pomaga trochę, a wtyczki bardzo pomagają , dla których www.vim.org jest nieskończonym źródłem. Niektóre specyficzne dla używanego języka, a niektóre ogólne (do komentowania, przeglądania plików, ...) szybko zamieniają je w bardzo szybkie środowisko programistyczne. W końcu (a niektórzy na pewno będą się kłócić) IDE to po prostu edytor z wtyczkami spakowanymi w ładniejszym interfejsie. W IDE też nie ma zbyt wielu elementów graficznych .
źródło