Automatyzacja rutynowych czynności za pomocą AutoHotkey

Podczas tłumaczenia wykonuje się wiele rutynowych czynności, które są niezbędne lub przynajmniej bardzo przydatne, ale zajmują dodatkowy czas. Oczywiście jest bez porównania lepiej niż w czasach sprzed Internetu, kiedy na przykład w poszukiwaniu odpowiedniego tłumaczenia nieznanego terminu trzeba było sięgnąć po grube tomisko słownika, wyszukać odpowiednią stronę, a potem znaleźć na tej stronie właściwe słowo. Teraz można skorzystać z ulubionej przeglądarki, ale kilka czynności za pomocą myszy lub klawiatury trzeba i tak wykonać, a czas ich wykonania można dość łatwo przeliczyć na pieniądze. (Takie przykładowe obliczenie wykonałem w tym artykule).

Do skrócenia tego czasu doskonale nadaje się program AutoHotkey. Niektóre jego możliwości już opisałem. W tym miejscu chciałbym przedstawić kilka prostych skrypcików, z których korzystam bardzo intensywnie nie tylko podczas tłumaczenia. Ponieważ są dla mnie użyteczne zawsze, gdy siedzę przy komputerze, umieściłem je w globalnym skrypcie AutoHotkey, który jest u mnie uruchamiany podczas startu Windows.

Zacznę od wyszukiwarki, bo wszyscy jej używają. Przy częstym korzystaniu wyrabiają się pewne automatyzmy i z biegiem czasu mało kto zadaje sobie pytanie, czy można to robić inaczej, a może nawet lepiej. Kierowca w ruchu miejskim jest zmuszony do częstej zmiany biegów i nie ma żadnego sensu, by przed każdą zmianą się nad nią zastanawiał. Potem wyjeżdża na trasę i wykonuje sekwencję: trójka, czwórka, piątka… Ale tak właściwie, kiedy już rozpędzi się na trójce do odpowiedniej prędkości, to po co wrzucać na czwórkę, skoro można od razu na piątkę?

Typowa sekwencja czynności przy wyszukiwaniu w Internecie to: zaznaczenie i skopiowanie do schowka słowa bądź całej frazy; ewentualne przejście do okna przeglądarki, jeśli poszukiwane słowo bądź frazę znaleziono w dokumencie, który nie jest w niej wyświetlany (na przykład znajduje się w tekście tłumaczonym za pomocą OpenTM2); umieszczenie kursora w pasku adresu lub w osobnym pasku wyszukiwania; wklejenie zawartości schowka i naciśnięcie klawisza Enter. Konkretne szczegóły zależą od używanej przeglądarki, ale ogólnie tak to chyba wygląda. Ja używam najnowszej wersji firefoksa i prezentowane przykłady będą przeznaczone właśnie dla niej.

Zaznaczenia i skopiowania do schowka nie potrafię zautomatyzować. Ustawiam wskaźnik myszy na słowo i klikam dwukrotnie lewym przyciskiem myszy (całe słowo zostaje zaznaczone). Jeśli chcę zaznaczyć kilka sąsiednich słów, trzymając wciąż naciśnięty lewy przycisk myszy, przesuwam wskaźnik na kolejne, aż zaznaczone będą wszystkie, które mnie interesują. Wtedy naciskam klawisze Ctrl+c. Proszę o wybaczenie tych, którzy uważają, że marnuję ich cenny czas na tak oczywiste sprawy, ale wiem, że są osoby, które postępują inaczej: zaznaczają wybrane słowa, przesuwając wskaźnik myszy i trzymając jednocześnie naciśnięty lewy przycisk myszy, a potem klikają prawym przyciskiem myszy i z menu podręcznego wybierają opcję Kopiuj. Postępując w ten sposób, tracą, moim zdaniem, przynajmniej dwa razy tyle czasu (a odzyskiwanie marnowanego czasu to taka moja nieszkodliwa obsesja).

Kolejny etap to przejście do okna przeglądarki. To też można zrobić przynajmniej na dwa sposoby: klikając myszą na pasku zadań albo naciskając klawisze Alt+Tab. W oknie przeglądarki trzeba przejść do paska wyszukiwania (wskazując myszą lub naciskając odpowiednie klawisze), wkleić do pola wyszukiwania treść skopiowaną wcześniej do schowka (najlepiej, naciskając klawisze Ctrl+v) i wreszcie nacisnąć klawisz Enter. Ja po zaznaczeniu i skopiowaniu frazy do schowka naciskam kombinację klawiszy Ctrl+], która powoduje wykonanie następującego skryptu:

^]::
WinActivate  Mozilla Firefox
WinWaitActive Mozilla Firefox
Send ^t^l"^v"{enter}
return

Dwie pierwsze instrukcje powodują, że okno przeglądarki staje się oknem aktywnym (wyeliminowane jest celowanie wskaźnikiem myszy w odpowiedni obszar paska zadań lub naciskanie kombinacji klawiszy Alt+Tab jeden lub kilka razy). Następnie instrukcja Send zastępuje naciskanie ciągu kombinacji klawiszy:

  • Ctrl+t — otwarcie nowej karty
  • Ctrl+l — przejście do paska adresu
  • — cudzysłów otwierający
  • Ctrl+v — wklejenie zawartości schowka
  • — cudzysłów zamykający
  • {enter} — kończący sekwencję klawisz Enter

Jedna kombinacja klawiszy zastępuje siedem innych. Nie chce mi się wykonywać szacunkowych obliczeń, ale wyszukiwanie w Internecie to u mnie czynność tak częsta, że roczna oszczędność czasu jest z pewnością liczona w godzinach.

Przy okazji zdefiniowałem bliźniaczo podobny skrypcik, w którym pominąłem jedynie cudzysłowy w instrukcji Send.

^+]::
WinActivate  Mozilla Firefox
WinWaitActive Mozilla Firefox
Send ^t^l^v{enter}
return

Korzystam z niego rzadziej, dlatego ukryłem go pod bardziej złożoną kombinacją klawiszy Ctrl+Shift+]. Służy mi do otwierania w przeglądarce stron internetowych, których adresy znajdują się w tłumaczonych plikach. Brak cudzysłowów powoduje, że po wklejeniu adresu URL do paska adresu przeglądarka od razu otwiera daną stronę.

Operacje na ciągach znaków

Proces tłumaczenia to w dużej części pisanie i poprawianie tego, co się napisało. Niektóre poprawki mogą wykonywać się same (pisałem o tym tutaj). Większość jednak wymaga użycia klawiatury. Niektóre czynności wykonuję tak często, że zawsze chciałem mieć do tego specjalny klawisz, którego jednak nigdy nie było na klawiaturze. To się zmieniło, kiedy zainstalowałem AutoHotkey.

Bardzo łatwo jest na przykład usunąć słowo znajdujące się na lewo od bieżącej pozycji kursora. Jeśli jednak chcę usunąć znaki po prawej stronie, muszę wykonywać dodatkowe czynności, co mnie denerwuje. W zależności od potrzeb mogę przeskoczyć na koniec bieżącego słowa (Ctrl+strzałka w prawo) i skasować całe (Ctrl+Backspace). Mogę też zaznaczyć znaki od bieżącego miejsca do końca słowa (Ctrl+Shift+strzałka w prawo) i skasować zaznaczenie (Del). Dla tej drugiej możliwości zdefiniowałem sobie specjalne hotkey:

^+Delete::Send ^+{Right}{Del}

Kliknięcie kombinacji klawiszy Ctrl+Shift+Del powoduje skasowanie znaków od kursora do końca słowa.

Od czasu do czasu zdarza się, że trzeba zmienić wielkość liter słowa, grupy słów lub całego zdania. Normalnie konieczne jest przepisanie wszystkiego od początku, co jest oczywistą stratą czasu. Dzięki AutoHotkey nie muszę tego robić. Wystarczą dwa proste skrypty:

^!Up::
Send ^c
StringUpper, clipboard, clipboard
Send ^v
return

^!Down::
Send ^c
StringLower, clipboard, clipboard
Send ^v
return

W powyższym kodzie wykorzystana jest wbudowana zmienna AutoHotkey o nazwie clipboard, która odzwierciedla bieżącą tekstową zawartość schowka systemowego, oraz dwie funkcje: StringLower i StringUpper służące do zmiany wielkości liter w ciągu znaków. Dzięki tym skryptom wystarczy, że zaznaczę pewien fragment tekstu, a następnie w zależności od potrzeb użyję kombinacji klawiszy Ctrl+Alt+strzałka w górę lub Ctrl+Alt+strzałka w dół. W pierwszym przypadku zaznaczony ciąg znaków zostaje zamieniony na taki sam ciąg znaków, ale pisany wielkimi literami. Druga kombinacja klawiszy ma natomiast działanie przeciwne. Tutaj czasem trzeba uważać, gdyż zetknąłem się z takimi programami, w których działanie tych skryptów zależało od stanu naciśnięcia klawisza Ins. W tych programach konieczne było ustawienie trybu nadpisywania, gdyż w trybie wstawiania w polu edycyjnym zamiast zmiany wielkości liter dochodziło do pojawienia się dodatkowej kopii tego samego ciągu znaków o zmienionej wielkości liter.

<< Wróć do poprzedniej strony