Jak nagrać makro w edytorze vim?

Ten wpis został napisany dawno temu i może być już nieaktualny.

Makro to zestaw instrukcji wykonanych w jednym kroku. Podczas programowania makra pomagają nam na automatyzjację powtarzalnych czynności, które stają się dzięki temu mniej nudne i mniej podatne na błędy. Vim jako jeden z najpotężniejszych edytorów tekstu posiada tą funkcjonalność wbudowaną.

Aby nagrać makro:

  • wchodzimy w tryb nagrywania: qa
  • wykonujemy zestaw instrukcji jak zwykle: (komendy vim)
  • zatrzymujemy proces nagrywania: q

Poznanie schematu

Najpierw dobrze jest się krótko zastanowić, co powinniśmy nagrać. Załóżmy, że mamy plik z listą piosenek i artystów, który chcemy umieścić na stronie. Każdy wiersz powinien być pokazany jako osobny element listy, a tytuł piosenki musi być sformatowany kursywą. Poniżej zawartość pliku:

"All Along the Watchtower", Jimi Hendrix
"Smells Like Teen Spirit", Nirvana
"Oops!... I did it again", Britney Spears
"A Hard Day's Night", The Beatles
"One", Metallica
"Lasy Pomorza", Behemoth

Aby przekonwertować pierwszą linię, używając vima, wykonalibyśmy podobną sekwencję komend:

  • Przejdź na początek linii wciskając ^

    "All Along the Watchtower", Jimi Hendrix
    
  • Wejdź w tryb edycji (i) , dodaj dwie spacje i tagi otwierające:  

  •   <li><i>"All Along the Watchtower", Jimi Hendrix
    
  • Wyjdź z trybu edycji (ESC) i przesuń kursor do pierwszego przecinka: f,

  • Włącz tryb edycji (i) i dodaj tag kończący kursywę:

      <li><i>"All Along the Watchtower"</i>, Jimi Hendrix
    
  • Wyjdź z trybu edycji (ESC), przeskocz na koniec linii włączając go ponownie (A) i dodaj tag zamykający listę

  •   <li><i>"All Along the Watchtower"</i>, Jimi Hendrix</li>
    
  • Wyjdź z trybu edycji (ESC) i przejdź do następnej linii Pozostałe wiersze mogą być sformatowane w identyczny sposób. Ręczne wykonanie tych samych czynności na całym pliku byłoby bardzo pracochłonne i podatne na błędy. Szczególnie, jeśli plik jest duży. Oczywistym jest, że lepiej jest pozwolić zrobić to komputerowi.

Rozpoczynanie nagrywania makra

Nagrywanie makra rozpoczynamy od wpisania:

qa

w normalnym trybie vima. 'a' jest "pudełkiem", w którym zostanie zapisane nasze makro. Możemy wybrać jakąkolwiek literę, co daje nam możliwość zapamiętania wielu makr.

Nagrywanie makra

Teraz wystarczy wykonać sekwencję opisaną już wcześniej, aby przekonwertować pierwszą linię. Bardzo ważne jest, abyśmy skończyli w pozycji dogodnej do rozpoczęcia kolejnej iteracji.

Zapisywanie makra

Opuszczamy tryb nagrywania i zapisujemy makro wciskając:

q

Uruchamianie makra

Podczas nagrywania makra sformatowaliśmy już pierwszą linię. Zakładając, że zapisaliśmy makro w rejestrze 'a', możemy przekonwertować kolejną linię wciskając:

@a

Nie musimy jednak wprowadzać tej sekwencji dla każdej linii. Aby sformatować pozostałe cztery wystarczy, że wpiszemy:

4@a

W wyniku otrzymamy:

  <li><i>"All Along the Watchtower"</i>, Jimi Hendrix</li>
  <li><i>"Smells Like Teen Spirit"</i>, Nirvana</li>
  <li><i>"Oops!... I did it again"</i>, Britney Spears</li>
  <li><i>"A Hard Day's Night"</i>, The Beatles</li>
  <li><i>"One"</i>, Metallica</li>
  <li><i>"Lasy Pomorza"</i>, Behemoth</li>

Podsumowanie

Głównym zadaniem programisty jest pisanie kodu. Gdy wykonujemy powtarzalne czynności ręcznie zamiast je automatyzować, wykonujemy pracę, która należy do komputera. Takie działanie czyni nas mniej czujnym i efektywnym. Poza tym, w przeciwieństwie do maszyny, popełniamy błędy. Dodanie makr do swojego zestawu umiejętności pozwoli nam zwiększyć wydajność i skupić się na właściwych zadaniach.

Jakub Zalas

Jakub Zalas

Architekt, Programista, Trener