Jakich funkcji Vima używasz? [Zamknięte]

13

Prawie cały dzień programuję w Vimie i jestem pewien, że wielu z was też. Z jakich funkcji korzystasz w codziennym programowaniu? Jednym z nich jest gv , który pozwoli ci ponownie wybrać poprzednio zaznaczony tekst. Świetnie nadaje się do ponownego gry!

Peter Mortensen
źródło
1
Dla celów historycznych oto link do oryginalnego pytania SO: stackoverflow.com/questions/95072/…
Jax
Zwróć uwagę na mój komentarz poniżej, a nawet nie będziesz musiał pisać gv. :)
Nathan Long

Odpowiedzi:

9

:% s / x / y / g

To polecenie zastępuje wszystkie wystąpienia xw bieżącym pliku na y . Zasadniczo jest to tylko wyszukiwanie i zamiana, ale używam go tak często, ponieważ nauczyłem się go w pracy, że stał się bezcenny.

Również / search string

następnie n, aby poruszać się po wszystkich instancjach ciągu wyszukiwania w pliku. Idealne do łatwiejszych ręcznych poprawek, zwłaszcza jeśli nie możesz zastosować reguły do ​​całego pliku.

karlgrz
źródło
Właściwie pracuję nad przekształceniem dużej części naszej bazy kodu w pracy i robię to całkowicie za pomocą wyrażeń regularnych vim (jak dotąd). Działa naprawdę dobrze!
Frew Schmidt,
Dodaj „c” na końcu, aby polecenie było interaktywne. np .:% s / x / y / gc
sml
1
Zauważ, że %to gdzie dokonać podstawienia - %oznacza „bieżący plik”. Jeśli wizualnie podświetlisz niektóre linie i typ :s, możesz dokonać podstawienia tylko w tym zaznaczeniu.
Nathan Long
7

== robi ładne automatyczne wcięcie na bieżącej linii.

Zwykle jednak używam =ruchu, jak =Gwcięcie do końca pliku lub =i}wcięcie w bieżącym zestawie nawiasów klamrowych.

Nathan Long
źródło
2
Pamiętaj także o >> i <<, które mogą ręcznie (od) wcięcia.
Frew Schmidt,
@Frew - tak. Ponadto, jeśli dodasz vmap <Tab> >gvi vmap <S-Tab> <gvdo swojego .vimrc, możesz wciąć i cofnąć wciskając odpowiednio Tab i Shift-Tab, ORAZ nastąpi powrót do trybu selekcji wizualnej, abyś mógł dalej wcinać lub cofać wcięcie.
Nathan Long
6

=% do automatycznego wcięcia wszystkiego w bloku kodu.

Kristo
źródło
Oooch! To dla mnie nowe!
Frew Schmidt,
Działa to, jeśli kursor znajduje się na początku {. Jeśli jesteś w bloku, możesz to zrobić =i{, ponieważ „wcięcie w nawiasach klamrowych”.
Nathan Long
5

Użyj *w trybie poleceń, aby wyszukać słowo pod kursorem.

Jonas
źródło
1
I nie zapomnij, że to siostrzane polecenie #, które robi to samo, ale idzie do tyłu zamiast do przodu!
Frew Schmidt,
5

:!Poleceń - bezcenne dla lsing i „sudo tee” trick.

Poproszono mnie o wyjaśnienie sztuczki na tee. Zasadniczo umożliwia zapisanie pliku tekstowego z uprawnieniami administratora, nawet jeśli nie uruchomiłeś VIM jako root:

:w !sudo tee %
person-b
źródło
Możesz tu wyjaśnić sztuczkę „sudo tee” :-) Lubię też: sortować po podświetleniu definicji zmiennych i tym podobnych.
Frew Schmidt
Możesz naprawdę zmienić Vima w świetny edytor „skryptowy”, używając:! i niektóre skrypty powłoki / Python / Perl / inne.
Jonas,
Właściwie mam alternatywę dla !ls, która uruchamia a vnew, wyjście r!lsdo nowego bufora i zmniejszenie go w poziomie. Nie przejmuję się zapamiętywaniem wszystkich plików w katalogu z ponad trzema;)
new123456 16.11.11
4
.

Uderzenie w. Klawisz powtarza poprzednie polecenie. Świetnie nadaje się, powiedzmy, do edycji .inilub mniej więcej.

Phoshi
źródło
jest to zaskakująco potężne, ale potrzeba trochę czasu, aby naprawdę dobrze sobie z tym poradzić.
aaron
3

podświetlanie kolorów składni

mas
źródło
2

Zawsze używam gq do ponownego łamania wierszy w wiadomościach e-mail, plikach tekstowych itp. Naprawdę przydatne, gdy odpowiadam na e-mail (używam sosny) i edytuję wiele poprzednich odpowiedzi.

erichui
źródło
Oooh, całkowicie o tym zapomniałem!
Frew Schmidt,
Dlaczego, och, dlaczego, popularniejsze klienty poczty e-mail nie obsługują podobnych funkcji?
erichui
Ostatnio używam gw zamiast gq, ponieważ utrzymuje pozycję kursora
SergioAraujo
2

Od czego zacząć ... Oto rzeczy, które pamiętam, których użyłem w ciągu ostatnich 5 minut.

  • Drzewo NERD - eksploracja plików. Sprawia, że ​​VIM bardziej przypomina IDE.
    • Jedną wielką rzeczą jest dla mnie możliwość przejścia do cdkatalogu, a następnie przejścia do wiersza poleceń powłoki poprzez moje odwzorowania powłoki (poniżej).
  • ci za opróżnianie wszystkiego, co utknęło pomiędzy.
  • :! do uruchamiania standardowych aplikacji.
    • Mam mapowania do uruchomienia zachęty powłoki, klienta mysql, plików dziennika apache itp.
    • Integracja z Subversion jest zawsze miła. Szybkie diffs, stats itp.
  • :abbr do powtarzania pisania dużych bloków.
  • Zakładki Czy muszę powiedzieć więcej?
  • Rozdzielanie plików, zawsze dobre. :Sexjest zawsze miły.
  • :set paste! aby powstrzymać się od posiadania amoku z automatycznym wcięciem.
Jack M.
źródło
Używam wszystkich z wyjątkiem abbr. Zwykle robię dużo więcej makr niż skrótów.
Frew Schmidt,
2

ZZ zapisz i wyjdź (zamiast: wq!)

dogbane
źródło
Co? Co z X ?
DevSolar
1

Podczas pisania lub przeglądania kodu C / Tcl / Perl intensywnie używam następujących poleceń:

skopiuj i wklej kod

CTRL-fi CTRL-bdo przewijania stron do przodu i do tyłu przy przechodzeniu
%blok po bloku
^ goto początek linii
$ goto ostatni koniec linii

zacznij wybierać kod za pomocą polecenia v(tryb wizualny) i dowolnego z powyższych klawiszy przejścia
ydo kopiowania w
pcelu wklejenia

s aby usunąć znak i przejść do trybu wstawiania, aby wpisać nowy tekst.

Przejścia na poziomie kodu (wymaga dyscypliny stylu kodowania)

]]do uruchomienia następnej funkcji
[[do uruchomienia poprzedniej funkcji

CTRL-] aby przejść do definicji zmiennej / funkcji / makra, jeśli tagi są dostępne.

Szukaj

* => szukane słowo (lub tekst wybrany za pomocą v) w kierunku do przodu
# => szukane słowo (lub tekst wybrany za pomocą v) w kierunku do tyłu
n => wykonaj poprzednie polecenie wyszukiwania w kierunku do przodu
N => wykonaj poprzednie polecenie wyszukiwania w kierunku do tyłu

Wszystkie powyższe polecenia mogą być poprzedzone liczbą, która wskazuje, ile razy należy je wykonać. Uświadomienie sobie mocy tego dodatkowego wymiaru przychodzi powoli, gdy coraz więcej się używa vima i rzuca wyzwanie poprawie.

secureBadshah
źródło
Ach,]] i [[są dla mnie nowe. To super!
Frew Schmidt
0

Po prostu wpisuję tekst. Cała reszta to po prostu ... Cukier.

akira
źródło
0

Jestem byłym użytkownikiem programu TextPad i nauczyłem się wielu kluczy akceleratora tego programu. Jedną z pierwszych rzeczy, które zrobiłem w Vimie, było nauczenie się funkcji mapy w celu zachowania spójności (wyszukiwanie F5, zamiana F8 itp.). Stworzyłem swój osobisty schemat kolorów i pożyczyłem wiele z plików vimrc innych osób. Viva Vim! Konfigurowalny w dowolnym stopniu.

wbogacz
źródło