Articles

Vim szukaj i zamieniaj

Posted on

Vim jest zaawansowanym i popularnym edytorem tekstu, który jest preinstalowany w większości dystrybucji Linuksa. Jest to edytor tekstu oparty na wierszu poleceń, który jest najczęściej używany w systemach operacyjnych nie opartych na GUI. Jest on wysoce konfigurowalny i posiada wiele funkcji. Istotnym punktem dotyczącym Vima jest to, że jest on wysoce zoptymalizowany do powtarzania.

W tym artykule wyjaśnimy jedną z jego najbardziej użytecznych funkcji, jaką jest wyszukiwanie i zamiana. Z garścią konfiguracji, możesz wyszukać wszystko co chcesz z ogromną prędkością i dokładnością.

Metoda #1 Znajdź i zamień jedno wystąpienie na raz (Używając ukośnika i kropki)

Najprostszym sposobem wyszukiwania i zamiany słów w Vimie jest użycie ukośnika i kropki. Ukośnik (/) może być użyty do wyszukania słowa, podczas gdy kropka (.) może być użyta do zastąpienia tego słowa.

Postępuj zgodnie z poniższymi prostymi krokami, aby wyszukać i zastąpić dowolne słowo w edytorze Vim:

  • Otwórz plik w Vim
  • Naciśnij ukośnik (/) wraz z wyszukiwanym terminem jak „/ search_term” i naciśnij Enter. Spowoduje to podświetlenie wybranego słowa.
  • Następnie naciśnij klawisz cgn, aby zastąpić podświetlone słowo i wprowadź replace_term
  • Powróć do normalnego trybu. Następnie naciśnij „n”, aby przejść do następnego wystąpienia wyszukiwanego terminu.
  • Następnie naciśnij kropkę (.), jeśli chcesz zastąpić następne wystąpienie tym samym replace_term, w przeciwnym razie ponownie naciśnij klawisz „n”, aby przejść do następnego wystąpienia.

Jest to najszybsza i najlepsza metoda dla podstawowych funkcji wyszukiwania i zastępowania, ponieważ obejmuje tylko kilka naciśnięć klawiszy i mniej zakłóceń w bieżącej pracy. Jednakże, dla szukania słowa, które występuje zbyt wiele razy, stanie się to powtarzalnym i czasochłonnym zadaniem.

W Vimie, jest inny lepszy sposób na uniknięcie tego powtarzalnego zadania, którym jest użycie polecenia zastępczego.

Metoda #2 Znajdź i zamień używając polecenia zastępczego

Polecenie zastępcze może być użyte do wykonania podstawowych do zaawansowanych funkcji wyszukiwania i zastępowania za pomocą jednego polecenia. Składnia tego polecenia jest następująca:

$ :s/<search_term><replace_term>/option

Zauważ, że to polecenie musisz wprowadzić w trybie normalnym.

Gdzie

  • S: oznacza zastępowanie
  • search_term: słowo, które chcesz wyszukać i zastąpić
  • replace_term: słowo, którym chcesz je zastąpić
  • Opcja: c (dla potwierdzenia), g (zamień wszystkie wystąpienia w jednym wierszu), i (dla ignorowania wielkości liter)

Szukaj i zamieniaj

Aby wykonać podstawowe wyszukiwanie i zamienianie za pomocą polecenia zastępuj, użyj następującej składni:

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

To polecenie zastąpi wszystkie instancje search_term terminem replace_term.

Na przykład, to jest nasz przykładowy tekst:

„Ubuntu jest jednym z najczęściej używanych systemów operacyjnych Linux. Ubuntu zawiera tysiące przydatnych programów. Dzięki wierszowi poleceń Ubuntu, możesz wykonać prawie każde zadanie”.

Aby zamienić każde wystąpienie „Ubuntu” na „Debian” w poniższym tekście, należałoby użyć następującego polecenia:

:%s/Ubuntu/Debian/g

Wyszukaj i zamień w pojedynczym wierszu

Aby wyszukać i zamienić wystąpienie słowa tylko w pojedynczym wierszu zamiast w całym pliku, użyj następującej składni:

:s/<search_term></replace_term/g

Na przykład, aby zastąpić wystąpienie Ubuntu na Debian w powyższym przykładowym tekście, należałoby użyć następującego polecenia bez symbolu %:

:s/Ubuntu/Debian/g

Wyszukaj i zamień z potwierdzeniem

Jeśli chcesz być poproszony o potwierdzenie przed zastąpieniem wyszukiwanego terminu, użyj litery „c” na końcu polecenia wyszukiwania w następujący sposób:

:s/<search_term><replace_term>/gc

Powyższe polecenie poprosi o potwierdzenie przed każdą zamianą (Wprowadź y dla tak, a n dla nie).

Wyszukiwanie i zamiana bez rozróżniania wielkości liter

Gdy wykonujesz wyszukiwanie i zamianę w Vimie, domyślnie rozróżniana jest wielkość liter. Możesz wykonać wyszukiwanie bez rozróżniania wielkości liter przez dodanie „i” na końcu polecenia, jak poniżej:

:s/<search_term><replace_term>/gi

Na przykład, aby wyszukać termin „Ubuntu” niezależnie od jego przypadku (UBUNTU, Ubuntu, ubuntu, uBuntu), należałoby użyć następującego polecenia:

:s/ubuntu/debian/gi

Wyszukiwanie i zastępowanie całego słowa

Domyślnie polecenie zastępowania wyszukuje każde dopasowanie, niezależnie od tego, czy jest ono częściowe, czy pełne. W celu dopasowania dokładnego szukanego_terminu, a następnie zastąpienia go przez zastępowany_termin, należy zawrzeć szukany _termin wewnątrz „<>”.

Na przykład, w niektórych dokumentach, chcesz wyszukać i zastąpić dokładne słowo „ty” przez „ja”. W takim przypadku należałoby użyć następującego polecenia:

:s/<you>/me/

Znajdzie ono słowo „ty” i zastąpi je słowem „ja”. Nie zastąpi jednak słów takich jak „twój”.

Wyszukiwanie i zastępowanie słów w poszczególnych liniach

Aby wyszukać słowo w poszczególnych liniach, a nie tylko w jednej linii lub w całym pliku, można użyć następującej składni:

:<start_line><end_line>s/<search_term><replace_term>/g

Na przykład, aby wyszukać i zamienić wystąpienie Ubuntu na Debian z linii od 3 do 8 w jakimś pliku, polecenie brzmiałoby:

:1,10s/ubuntu/debian/g

Aby wyszukać i zastąpić wystąpienie słowa od bieżącej linii do następnej x liczby linii, należałoby użyć następującej składni:

:s/search_term/replace_term/g x

Podobnie, aby wyszukać i zastąpić wystąpienie słowa od bieżącej linii do ostatniej linii: użyto by następującej składni:

:.,$s/search_term/replace_term/g

PODSUMOWANIE

W tym artykule poznaliśmy dwa sposoby na wyszukiwanie i zastępowanie dowolnego słowa w edytorze Vim z linii poleceń. Pierwsze polecenie, które było przy użyciu ukośnika i kropki jest najprostszą i najłatwiejszą metodą, ale okazuje się być powtarzalne, gdy szukasz i zastępujesz słowo, które występuje zbyt wiele razy. Drugie polecenie, które jest komendą zastępczą, może wydawać się trudne i skomplikowane, ale gdy zaczniesz je ćwiczyć, przekonasz się, że jest niezwykle przydatne w wielu scenariuszach.

Dodaj komentarz

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