Zastanawiam się, czy powinienem zacząć używać VIM zamiast IDE. Jakie są najbardziej przydatne funkcje VIM, które nie są standardowe w IDE?
ide
vim
comparison
Casebash
źródło
źródło
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.
źródło
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:
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”
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”:
źródło
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.źródło
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.
źródło
^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.źródło
=
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
źródło
c
Poleceń. Na przykład,ci"
aby zmienić wewnątrz cudzysłowów.cw
zmienić słowo. Wiele przydatnych sztuczek.źródło
.
Poleceń. Powtarza ostatnie polecenie.źródło
Esc ! }
będzie wpakować aktualny paragraf się do filtra linii poleceń jakfmt
lubwc
czywhich
i wyników powrót do edytora.źródło
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ę.
źródło
:!/bin/bash
. Używam:!
dość często.:sh
Tego mogę użyć,
hjkl
aby przesunąć kursor bez wychodzenia z klawiatury. Mam większość programów (takich jak czytniki plików PDF), które pozwalają zmieniać skróty klawiszowe, ustawiać używanie klawiszy ruchu Vima do przewijania itp.źródło
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).
źródło
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ę.
źródło
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
źródło
Wybierz kolumnę tabeli
Nie wydaje się, aby znajdowało się to w popularnych IDE, a jeśli tak, to trzymaj je dobrze ukryte. Jest to naprawdę przydatne do testowania wyrażenia regularnego względem kolumny w pliku danych CSV.
źródło
Większość IDE nie pozwala na podzielenie ekranu. Podoba mi się ta funkcja w VIM.
źródło
<C-w>