0

Makro gupcze!

Emacsa miałem opisywać delikatnie i od początku, żeby szoku nie było, ale im bardziej człowiek chce ‚uporządkować i zrobić dobrze’, tym więcej czasu siedzi, myśli i porządkuje. Zamiast wziąć się i zrobić 😀
To wogóle jest temat na inny raz – będzie zatytułowany ‚Moja bezproduktywna produktywność’ 🙂

No ale do rzeczy.

Mam ja sobie dziś rano taki kawałek kodu:

a potrzebuję z niego zrobić taki kawałek kodu:

Czyli dla każdej linii potrzebuję zrobić tak:

  1. wcisnąć TAB, żeby ustawić automatyczne wcięcie danego wiersza.
  2. skasować ‚tempfd’ (M-d – kasowanie wyrazu)
  3. skasować kropkę (C-d – kasowanie znaku)
  4. przejść na koniec wyrazu (M-e – przejście na koniec wyrazu)
  5. dopisać przecinek (‚,’)
  6. skasować co zostało (C-k – usuń wszystko od pozycji kursora do końca wiersza)
  7. przejść do kolejnego wiersza (C-n)
  8. ustawić się na jego początku (C-a)

W razie jakby ktoś nie wiedział to ‚C‚ oznacza klawisz Control, a ‚M‚ klawisz Meta (czyli Alt).

Tu widać 29 linii ale w tym pliku mam około 200 takich zmian do wprowadzenia.

Można oczywiście ‚po nowoczesnemu’: latać mysz-klawa: zaznaczyć cośtam, wyciąć cośtam, kliknąć i ustawić kursor w innym miejscu, cośtam dopisać, zaznaczyć coś innego itp.

Ale można też użyć metod prymitywnych – Emacsowego prostego makra.
Nagrywanie makra rozpoczynamy skrótem: C-x ( a kończymy C-x )

No to robimy tak:

C-x ( TAB M-d C-d M-f , C-k C-n C-a C-x )

i już.

Teraz każdorazowe wciśnięcie ‚C-x e‚ wykona nam nasze makro czyli posprząta jeden wiersz 😀

Oczywiście to Emacs jest – istnieje coś takiego jak ‚argument numeryczny’. Jeżeli wciśniemy ‚C-u liczba skrót‚ to Emacs wykona ‚skrót‚ ‚liczbę‚ razy.
Np.:
C-n to przejście do nowego wiersza
C-u 10 C-n to przejście o 10 wierszy w dół

czy:
M-f to przejście na koniec wyrazu
C-u 5 M-f to przejście na koniec 5 wyrazu

Już pewnie widać do czego dążę ;D
Ustawiamy się na początku naszego kodu, wciskamy C-u 29 C-x e
To zaaplikuje nasze makro 29 razy i tym samym zrobi nam porządek z całym fragmentem 😉

Oczywiście to dopiero początek zabawy bo teraz za pomocą C-x C-k n możemy nasze makro nazwać.

A potem wywołać za pomocą M-x nasza-nazwa-makra. W ten sposób można mieć kilka(naście) makr i aplikować wedle potrzeby.

Zapisywanie makra na przyszłość

  1. Otwieramy nasz plik konfiguracyjny (~/.emacs albo ~/.emacs.d/init/el)
  2. Wstawiamy makro: M-x insert-kbd-macro – Emacs zapyta o nazwę mark do wstawienia.
  3. Zapisujemy konfig.
  4. Tak zapisane makro możemy już wywołać zawsze i wszędzie za pomocą M-x nazwa-makra

Dodaj komentarz

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