Zastanawiam się, czy powinienem zacząć używać VIM zamiast IDE. Jakie są najbardziej przydatne funkcje VIM, które nie są standardowe w IDE?
emacs
zamiast tego zacząć używać . ;-)
Zastanawiam się, czy powinienem zacząć używać VIM zamiast IDE. Jakie są najbardziej przydatne funkcje VIM, które nie są standardowe w IDE?
emacs
zamiast tego zacząć używać . ;-)
Odpowiedzi:
Nie uważam, że to koniecznie zaawansowane funkcje VIM, które czynią go tak potężnym. Faktem jest, że nigdy nie musisz odrywać rąk od klawiatury, aby cokolwiek zrobić. Znalezienie czegoś w wielkim pliku jest tak proste, jak kilka naciśnięć klawiszy. Otwieranie i zamykanie wielu plików w tym samym oknie jest również niezwykle szybkie.
Choć na początku może nie wydawać się intuicyjny, warto poświęcić mu czas. Nawet jeśli nie używasz go jako standardowego IDE (na ogół używam Visual Studio lub Eclipse, na przykład), znajdziesz siebie za pomocą VIM do szybkiego otwierania i edycji plików, ponieważ staje się on znacznie szybszy niż oczekiwanie na IDE do obciążenie.
Zainwestuj czas, aby nauczyć się dobrze korzystać z VIM, a nigdy tego nie pożałujesz. Powiedziałbym, że jest to porównywalne z nauką pisania na klawiaturze.
Dla mnie to :global
polecenie jest zabójczą aplikacją. Będzie wykonywać dowolne polecenia vim w dowolnym wierszu, który pasuje (lub nie pasuje) do wyrażenia regularnego.
Oto kilka przykładów:
Domyślnym zachowaniem jest wypisanie każdej pasującej linii, więc:
:g/TODO:/
wyświetli listę każdego wiersza zawierającego tekst „DO ZROBIENIA:”
zmień „Mickey” na „Minnie” w dowolnym wierszu, który zawiera również słowo „Mysz”
:g/Mouse/ s/Mickey/Minnie/
Polecenia mogą mieć własny zakres, więc spowoduje to usunięcie z każdego wiersza za pomocą „TODO:” do następnego pustego wiersza:
: g / DO ZROBIENIA: /., / ^ $ / d
Użyj: g! aby wykonać w każdym wierszu, który NIE pasuje do wyrażenia regularnego, np. zastąpić „emacs” słowem „vim”, z wyjątkiem wierszy zawierających słowo „do bani”:
:g!/sucks/ s/emacs/vim/
Uważam, że możliwość usuwania wszystkiego pomiędzy zestawem sparowanych symboli jest niezwykle przydatna. Na przykład dość często chcę zamienić ciąg znaków w kodzie. Tak więc, di"
gdy kursor znajduje się w bloku, usunie ciąg znaków, zachowując ""
nienaruszony, i umieści kursor pomiędzy dwoma znakami cudzysłowu. da"
robi to samo, ale usuwa również znaki cudzysłowu.
ci"
usuwa i umieszcza kursor w trybie wstawiania, dzięki czemu można od razu rozpocząć pisanie.
„Uzupełnianie słów kluczowych w trybie wstawiania”. Ctrl-P i Ctrl-N w trybie wstawiania, aby przeszukać tekst i spróbować uzupełnić dowolną wpisaną nazwę zmiennej. Nigdy nie widziałem tego w żadnym innym IDE i naprawdę mi tego brakuje. Uzupełnianie kodu w IDE po prostu nie jest takie samo.
^X^O
omni-dopełnia w trybie wstawiania, jeśli masz włączone. Ale masz rację, uznaję, że używam uzupełniania słów kluczowych o wiele więcej niż dookólnych.
Kolejną cechą, która uważam za niezwykle przydatną, jest możliwość zmiany wcięcia. :15,30>>
wcina dwukrotnie wszystkie wiersze od 15-30 (włącznie), natomiast dwukrotnie :15,30<<
wcina te same wiersze.
=
jest tak samo, jeśli nie bardziej, użyteczny niż <<
i >>
.
polecenie dd (usuń bieżący wiersz). Tak często go używam.
Również możliwość wpisania czegoś takiego jak 3dd i usunięcia kolejnych 3 wierszy jest cudowna. Nigdy nie widziałem tego w innym edytorze = D
.
Poleceń. Powtarza ostatnie polecenie.
Szybki dostęp do wiersza poleceń. CTRL + Z lub: wqa dostarczy mi wiersz poleceń w czasie krótszym niż 1 sekunda bez mojej ręki opuszczającej klawiaturę.
:!/bin/bash
. Używam :!
dość często.
:sh
Trudno jest odpowiedzieć na to pytanie, ze względu na niejasność pytania i nieco na fakt, że IDE różnią się, a wiele z nich oferuje funkcje, których inni nie mają (oraz fakt, że mam tylko kilka z nich).
Jednak moim zdaniem odróżnia Vima od innych redaktorów (tak, nawet Emacsa w tym przypadku) jest to, że jest naprawdę świetnym edytorem . Z biegiem czasu korzystałem z wielu edytorów i mogę szczerze powiedzieć, że bardzo niewielu ma tak kompletny zestaw funkcji do manipulowania tekstem, jak Vim.
Mój styl manipulowania tekstem obejmuje na przykład bardzo często używanie (linia / zaznaczenie kilku linii) powielania i przesuwanie (linia / zaznaczanie kilku linii) w górę iw dół, dla których już dawno zdefiniowałem szybkie skróty. Brakuje mi tych funkcji w większości IDE (chociaż słyszałem, że ReSharper dla VS ma coś podobnego).
Czy wiesz, że istnieje wtyczka vi do zaćmienia ? Kosztuje 15 euro (20ish US $), ale jest tego warte. Nigdy więcej dd
pośrodku dokumentu i brak wszystkich drobnych przydatnych rzeczy.
Może trochę nie na temat, ale pomyślałem, że warto na to zwrócić uwagę.
W zależności od tego, w jakim języku programujesz, trzymaj się ideu lub uzyskaj ide, który oferuje najwięcej refaktoryzacji, jakie możesz znaleźć, uzyskaj resharper dla visual studio, jeśli robisz c #, intellij dla java lub asystę wizualną dla visual studio, maksymalnie refaktoryzacji w zaćmieniu lub fasoli sieciowej.
Powinniśmy przejść od manipulacji tekstem do manipulowania kodem, narzędzia refaktoryzacyjne dają taką możliwość. Jeśli vim daje ci wszystkie funkcje w porządku, ja na pewno nie chcę już zajmować się edytorem tekstu
Większość IDE nie pozwala na podzielenie ekranu. Podoba mi się ta funkcja w VIM.
<C-w>