Vi/Vim jest jednym z legendarnych edytorów tekstu, który wciąż znajduje swoje miejsce w arsenale zaawansowanych i profesjonalnych użytkowników. Vim jest szczególnie popularny wśród programistów. Każda pojedyncza dystrybucja Linuksa zawiera Vima domyślnie. Jeśli używasz systemu innego niż Linux, nadal powinieneś być w stanie cieszyć się tą jakością edytora tekstu z dowolnego systemu. Pobierz Vima.

Dlaczego ten starożytny program jest wciąż aktualny? Ponieważ jest lekki, posiada skróty klawiaturowe do prawie każdej funkcji, wbudowane wyszukiwanie wyrażeń oraz solidny, stabilny i zdrowy ekosystem wtyczek. Nie wspominając o innych nowoczesnych funkcjach edytora tekstu, takich jak piękne podświetlanie składni. Vim jest popularny głównie wśród programistów, ponieważ wymaga dużego skupienia na klawiaturze. Jest to dobra praktyka dla programistów.

Jak sugeruje tytuł artykułu, celem tego przewodnika jest zaoferowanie lepszego zrozumienia funkcjonalności wyszukiwania i zastępowania w Vimie. Vim nie ma się czego bać. W rzeczywistości jest to jedna z supermocy, które zawsze będziesz miał u swojego boku.

Na początku potrzebujemy tekstu demonstracyjnego. Do nauki Vima, najbezpieczniejszym sposobem jest stworzenie jednorazowego pliku tekstowego i robienie z nim co się chce. W ten sposób, nawet jeśli coś pójdzie nie tak, nic ważnego nie zostanie utracone.

Ja używam Manjaro Linux jako mojego systemu Linux. Dowiedz się jak zainstalować Manjaro Linux. Jest to dystro oparte na Arch, używające pacman jako domyślnego menedżera pakietów. Wygenerowałem plik tekstowy zawierający wszystkie zainstalowane pakiety w moim systemie.

pacman -Qqe >> PackageList.txt

cat PackageList.txt

Teraz uruchom plik tekstowy w programie Vim!

vim PackageList.txt

Wyszukiwanie w Vimie

Do wyszukiwania Vim używa następującej struktury.

?<search_string>

Na przykład, wyszukajmy „python”.

?python

Domyślnie, wyszukiwanie zakończy się na jednym ustalonym wyniku. Aby przejść do następnego/poprzedniego wyniku wyszukiwania, użyj następujących klawiszy.

Uwaga: Nie zapomnij wcisnąć Enter przed użyciem następujących klawiszy. W przeciwnym razie wyszukiwane hasło ulegnie zmianie!

n – Znajdź następne dopasowanie
N – Znajdź poprzednie dopasowanie

To tylko podstawowy sposób wyszukiwania. Wypróbujmy nieco bardziej rozbudowaną metodę.

/<search_string>>

Tutaj, < odpowiada za wskazanie początku wyszukiwanego ciągu znaków, a /> za zakończenie ciągu znaków.

Tak jak w poprzednim przykładzie, użyj n lub N (zależnie od wielkości liter) aby poruszać się po wynikach wyszukiwania.

Wyszukiwanie wspiera również użycie dzikich kart. Na przykład, istnieje wiele pakietów z rozszerzeniem „python-„.

Aby wyszukać je wszystkie, możemy użyć „python*”. Tutaj gwiazdka mówi, że wszystko po przedrostku „python”. W przypadku każdego wyszukiwania, gwiazdka może znajdować się w dowolnym miejscu wyszukiwanego wyrażenia. Gdziekolwiek się znajduje, mówi Vimowi, aby wypełnił lukę wszystkimi możliwymi danymi z całego pliku tekstowego.

/<python*/>

Podczas wyszukiwania, Vim zawsze umieści kursor na początkowym znaku dopasowania. Jest to działanie domyślne. Nie martw się; Vim pozwala na zmianę domyślnej pozycji lądowania kursora.

/python/e

Tutaj ostatnie „e” mówi, aby kursor znalazł się na końcu pasującej frazy. Korzystając z poniższego przykładu, można również powiedzieć, aby kursor wylądował poniżej lub powyżej wyniku wyszukiwania.

/<search_string>/+2

/<search_string>/-.3

Możliwe jest również odsunięcie kursora od początku/końca wyszukiwanych dopasowań. Na przykład poniższe polecenie spowoduje, że kursor wyląduje na 3 znaku obok początku.

/<search_string>/s+3

/<search_string>/b+3

Tutaj, „s” oznacza początek, „+3” oznacza 3 znaki od początku. „b” oznacza „begin”. Działa również podobnie do „s”. Na zrzucie ekranu, Vim automatycznie przetłumaczy „b” na „s”.

Jeśli jesteś zainteresowany przesunięciem od końca wyszukiwanych dopasowań, użyj „e”.

/<search_string/e-2

Jeszcze jeden rewelacyjny sposób na wykonanie wyszukiwania w pliku tekstowym.

:%s/<search_pattern>//gn

Szczegółowe wyjaśnienie komendy znajduje się w dalszej części artykułu.

Zamień w Vimie

Znajdź i zamień to kolejna powszechna i obowiązkowa funkcja każdego edytora tekstu. Vim, będąc legendą, oferuje solidny sposób na znalezienie i zastąpienie pożądanego tekstu w prosty sposób. Polecenie dla tej funkcji jest proste, ale pozwala na wykonywanie naprawdę złożonych prac.

:<range> s/<search_string><replace_string><modifier>

Podzielmy się na poszczególne części.

  • zakres – Określa zakres wykonywania funkcji „znajdź i zamień”. Istnieją 2 różne wartości.
    • % – Wykonuje na całym pliku
    • <start _line><end_line> – Wykonuje akcję na określonym zestawie linii.
  • search_string – Ciąg, który musisz zastąpić.
  • replace_string – Nowy ciąg, który zastąpi stary.
  • modifier – Określa zachowanie replace. Istnieje kilka różnych wartości.
    • g – Opcja „Globalna”. Wykonuje zamianę na każdym wystąpieniu linii.
    • gc – Pyta o potwierdzenie przed wykonaniem każdej zamiany.
    • gn – Ignoruje funkcję zamiany i podświetla znaleziska.

Na przykład, zastąpmy wszystkie „python” na „Python3”.

:%s/python/Python3/g

Proste, prawda? A teraz sprawdźmy poniższy przykład.

:%s/python/Python3/gc

Jest kilka akcji, które możesz wybrać. Podczas gdy niektóre z nich są znane, inne nie. Zobaczmy, co one oznaczają.

  • y – Allow performing the change.
  • n – Disallow performing the change.
  • a – Substitute all.
  • q – Quit the task.
  • l – Just substitute this occurrence. Następnie zakończ zadanie.
  • ^E (Ctrl + E) – Przewiń ekran w górę
  • ^Y (Ctrl + Y) – Przewiń ekran w dół

Teraz wypróbujmy część dotyczącą zakresu. W poprzednim przykładzie użyliśmy już zakresu „%”. Teraz nadszedł czas, aby ograniczyć nasze wyszukiwanie do kilku linii.

:200,250 s/python/Python3/g

Wyszukiwanie rozpocznie się w linii 200 i zakończy w linii 250. Pomiędzy tymi limitami, wszystkie wpisy „python” zostaną zmienione na „Python3”.

Ta funkcja nie jest ograniczona tylko do jednego terminu wyszukiwania. Możesz uwzględnić wiele terminów wyszukiwania!

:%s/<search_term_1><search_term_2><search_term_3>
/<replace_string>/g

Spróbujmy zmienić wszystkie wpisy „python” i „py” na „Python3”.

:%s/python|py/Python3/g

Wrażliwość na wielkość liter

Wszystkie sztuczki opisane wcześniej w poradniku są wrażliwe na wielkość liter. Musisz się naprawdę upewnić, że podczas pracy wpisujesz znaki w odpowiedniej wielkości liter. Na przykład „Python”, „python”, „PYTHON” itd. to różne wpisy.

Jeśli nie pamiętasz wielkości liter, po prostu powiedz Vimowi, żeby nie uwzględniał wielkości liter!

/<search_term>
:%s/<search_term>c/<replace_term>/g

.

Tę niewrażliwość można również włączyć bezpośrednio z pliku vimrc.

set ignorecase

Jest jeszcze jedna ciekawa opcja.

set smartcase

„ignorecase” zmusi Vima do zignorowania wrażliwości na wielkość liter. Jednakże, jeśli w twoim wyszukiwaniu jest jakaś wielka litera, „smartcase” umożliwi Vimowi ponowne rozróżnienie wielkości liter.

Uwaga: Aby „smartcase” działało, musisz najpierw użyć „ignorecase”.

Podsumowanie

Jest wiele rzeczy, które możesz zrobić z Vimem. To jak najlepszy edytor tekstu, jakiego kiedykolwiek będziesz potrzebował. Wszystko, czego potrzebujesz, to cierpliwość i trochę praktyki.

Baw się!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *