AutoHotkey a pisanie tekstów

Jest kilka programów, które uważam za genialne, a jednym z nich jest na pewno AutoHotkey. Odkąd go zainstalowałem i jako tako poznałem, nie mogę się bez niego obejść. Jego zastosowania są wielorakie, ale w tym miejscu skupię się na tych jego możliwościach, które wspomagają pisanie tekstów, czyli to, czym zajmują się tłumacze. Obszerna dokumentacja wszystkich funkcji i możliwości ilustrowana dużą liczbą przykładów jest dostępna na stronie https://autohotkey.c … /docs/AutoHotkey.htm.

W skrócie można powiedzieć, że działanie AutoHotkey polega na wykonywaniu przeznaczonych dla niego skryptów. Skrypt to plik tekstowy o dowolnej nazwie, ale z rozszerzeniem .ahk, w którym zapisane są odpowiednie instrukcje. Za pomocą tych instrukcji można tworzyć nawet bardzo złożone programy wyposażone w graficzny interfejs użytkownika, ale najłatwiejsze do wykorzystania skrypty mogą zawierać wyłącznie tzw. hotkey i hotstringi, które nie wymagają żadnych umiejętności programowania. Wystarczy poznać i stosować właściwą składnię.

Hotkey

Hotkey to klawisz skrótu, którego naciśnięcie powoduje wykonanie pewnych operacji. Operacje te mogą tworzyć nawet bardzo złożony program, ale w moim przypadku najczęściej używanym hotkey jest wprowadzanie za pomocą klawiatury polskiego cudzysłowu otwierającego lub zamykającego. Niektórzy tłumacze nigdy tego nie robią — kilkakrotnie zdarzało mi się wykonywać korektę, która w większości polegała na zamianie cudzysłowów angielskich na polskie. Inni stosują karkołomne kombinacje wielocyfrowe z użyciem klawisza Alt. Ja natomiast naciskam kombinację klawiszy Ctrl+’, aby uzyskać cudzysłów otwierający, oraz kombinację Ctrl+Shift+’, aby uzyskać cudzysłów zamykający. Odpowiednie instrukcje w skrypcie AutoHotkey wyglądają następująco:

^'::Send „

^+'::Send ”

Jak widać powyżej, definicja prostego hotkey mieści się w jednym wierszu tekstu. Zaczyna się od określenia naciskanego klawisza lub ich kombinacji, potem należy obowiązkowo wpisać dwa dwukropki, a na końcu umieszcza się instrukcję do wykonania. W tym miejscu nietrudno się już domyślić, że symbol daszka („^”) reprezentuje klawisz Ctrl (inne często używane symbole to „+” oznaczający klawisz Shift oraz „!” oznaczający klawisz Alt), a Send to instrukcja powodująca wysłanie do klawiatury pewnego znaku (ściślej rzecz biorąc, może to być ciąg wielu znaków) — w tym przypadku wysyłany jest polski cudzysłów otwierający. Efektem działania skryptu zawierającego tę definicję jest wprowadzenie do tekstu polskiego cudzysłowu otwierającego po naciśnięciu kombinacji klawiszy Ctrl+’. Drugi przykład to oczywiście wprowadzenie do tekstu polskiego cudzysłowu zamykającego po naciśnięciu kombinacji klawiszy Ctrl+Shift+’.

Innymi prostymi hotkey, które często wykorzystuję, są na przykład:

^-::Send —

do umieszczania w tekście symbolu tzw. m-dash po naciśnięciu kombinacji klawiszy Ctrl+- oraz

^+-::Send –

do umieszczania w tekście symbolu n-dash po naciśnięciu kombinacji klawiszy Ctrl+Shift+-.

Pełną listę prawidłowych nazw klawiszy można oczywiście znaleźć w dokumentacji. Wszystkie mogą okazać się bardzo przydatne. Na przykład dzięki takiemu hotkey

AppsKey::RAlt

nie zdarza mi się podczas szybkiego pisania wywołanie menu podręcznego zamiast wprowadzenia polskiej litery. To hotkey powoduje, że klawisz leżący między prawym klawiszem Alt i prawym klawiszem Ctrl jest po prostu drugim prawym klawiszem Alt umożliwiającym wprowadzanie polskich liter. Tego rodzaju hotkey, w którym po prawej stronie zamiast instrukcji znajduje się nazwa innego klawisza, jest nazywane remapowaniem klawiatury.

Hotstring

Innym mechanizmem przydatnym podczas pisania jest hotstring. Hotstring to ciąg znaków (najlepiej bardzo krótki), który jest we wpisywanym tekście zastępowany innym ciągiem znaków, zazwyczaj znacznie dłuższym (w przeciwnym razie jego użycie nie ma większego sensu — chyba że jest stosowany w innym celu, o którym piszę dalej). Najczęściej używanym przeze mnie hotstringiem jest:

::nm::nie można

Podobnie jak w przypadku hotkey, definicja ta również mieści się w jednym wierszu. Zaczyna się od dwóch znaków dwukropka, po nich znajduje się krótszy ciąg znaków, który ma być wpisywany za pomocą klawiatury, następnie ponownie dwa dwukropki obok siebie i na końcu ciąg znaków, który będzie pojawiał się w tekście zamiast wpisanego. Jeśli w skrypcie znajduje się ten hotstring, za każdym razem, gdy należy w tekście wpisać słowa „nie można”, wystarczy zamiast nich wpisać ciąg znaków „nm” i nacisnąć klawisz kończący słowo (np. spację, przecinek lub kropkę). Po naciśnięciu tego klawisza litery „nm” w magiczny sposób zamieniają się w słowa „nie można”.

Dość łatwo można oszacować korzyść z takiego postępowania. Łańcuch „nm ” to 3 znaki (licząc końcową spację), natomiast łańcuch „nie można ” ma tych znaków 10. Przyjmijmy dla uproszczenia stosunek długości równy 1 do 3. Przyjmijmy także, że łańcuch „nie można ” pojawia się w tekstach tłumaczeń 30 razy dziennie, a czas jego napisania to 2 sekundy (trudno ten czas zmierzyć, ale wykonałem próbę, podczas której napisałem „nie można ” 32 razy w ciągu jednej minuty, robiąc dwie literówki). To daje 1 minutę dziennie, ale przy zastosowaniu hotstringa oszczędzamy dwie trzecie tego czasu, czyli korzyść wynosi 40 sekund na dzień. Jeśli tłumaczymy 270 dni w roku, to roczna korzyść wynosi 270 * 40 s = 10800 s = 180 min = 3 godziny. Po przemnożeniu przez średnią stawkę za godzinę (oczywiście prawie nikt nie tłumaczy za stawkę godzinową, ale każdy mniej więcej wie, ile jest warta jedna godzina jego pracy), otrzymujemy roczny zysk wynikający wyłącznie z użycia tego jednego jedynego hotstringa. A przeliczając to na czas, definiujemy jeszcze dwa hotstringi zastępujące często występujące ciągi znaków i dostajemy rocznie jeden dodatkowy dzień wolny od pracy. Kilka przykładów hotstringów do wykorzystania w tematyce IT przychodzi mi do głowy od razu:

::wb::wystąpił błąd
::bp::błąd podczas
::kp::kliknij przycisk
::kpm::kliknij prawym przyciskiem myszy

Można ich wymyślić bardzo wiele, a ograniczeniem tej liczby nie jest skończony zbiór liter na klawiaturze, ale raczej możliwość zapamiętania ich wszystkich.

Automatyczna korekta pisowni z użyciem hotstringów

Automatyczna korekta pisowni to funkcja znana z zaawansowanych edytorów tekstu, ale dzięki hotstringom można z niej korzystać w dowolnym programie umożliwiającym wprowadzanie danych za pomocą klawiatury, czyli również w każdym programie używanym do tłumaczenia. Przykład takiego zastosowania hotstringów w języku angielskim można znaleźć w dokumentacji. Przedstawione tam rozwiązanie nazwałbym „totalnym”. Ja natomiast na własne potrzeby zdefiniowałem sobie hotstringi korygujące literówki, które występują u mnie najczęściej. Nie zdefiniowałem ich wszystkich od razu, ale rozszerzałem listę stopniowo podczas pracy ze „spellczekerem” w xbench, wyłapując te, na które traciłem najwięcej czasu. U każdego ta lista może być inna. Na mojej znajdują się m.in. następujące hotstringi:

::wiecej::więcej
:*:któe::które
:?:sć::ść
:?*:cyh::ych

Użyte w tych przykładach symbole gwiazdki i znaku zapytania modyfikują działanie hotstringów. Gwiazdka powoduje, że do wywołania hotstringa nie jest potrzebne naciśnięcie klawisza kończącego słowo, takiego jak spacja, przecinek itp. Natomiast dzięki zastosowaniu znaku zapytania hotstring jest wywoływany także wtedy, gdy znajduje się wewnątrz słowa, a nie na jego początku. Stąd wynika, że w powyższych przykładach:

  1. Wpisane błędne słowo „wiecej” zostaje automatycznie zastąpione słowem „więcej” po naciśnięciu klawisza spacji, przecinka, kropki itp. po ostatniej literze słowa (w tym przypadku po literze „j”).
  2. Łańcuch „któe” zostaje automatycznie zastąpiony łańcuchem „które” po naciśnięciu litery „e”. Dzięki temu „w locie” korygowana jest literówka występująca u mnie często przy pisaniu słów „które”, „którego”, „której” itd.
  3. Jeśli na końcu wpisanego słowa znajduje się ciąg znaków „sć”, po naciśnięciu klawisza kończącego słowo, czyli spacji, przecinka itp. zostaje on automatycznie zastąpiony ciągiem znaków „ść”. Koryguje to częstą u mnie literówkę przy pisaniu takich słów, jak „wartość”, „przyszłość” itp.
  4. Jeśli w dowolnym miejscu wpisywanego słowa pojawi się ciąg znaków „cyh”, zostaje on automatycznie zastąpiony ciągiem znaków „ych” natychmiast po naciśnięciu klawisza z literą „h”. Ta literówka zdarza mi się często na przykład w słowach „danych” czy „natychmiast”.

Gwiazdka i znak zapytania to moim zdaniem najważniejsze modyfikatory hotstringów, ale istnieją także inne i można o nich poczytać w dokumentacji.

Uruchamianie skryptu AutoHotkey podczas startu Windows 10

Często używane hotkey oraz hotstringi można umieścić w skrypcie AutoHotkey, który jest uruchamiany razem z systemem Windows. Dzięki temu działają one zawsze i nie trzeba pamiętać o ręcznym uruchomieniu odpowiedniego skryptu. W wersjach Windows wcześniejszych niż Windows 8 było to bardzo łatwe. Wystarczyło umieścić dany skrypt w folderze „Autostart” znajdującym się w menu Start. Później stało się kłopotliwe, ale na szczęście wciąż jeszcze możliwe. Folder „Autostart” istnieje, ale jego faktyczne położenie to „C:/Users/[nazwa_użytkownika]/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup”, gdzie w miejscu ciągu znaków [nazwa_użytkownika] znajduje się nazwa użytkownika zalogowanego do systemu. Folder „Startup” jest folderem ukrytym i dlatego jest widoczny w Eksploratorze Windows dopiero wtedy, gdy jest w nim zaznaczona opcja Widok > Ukryte elementy. Procedura, którą trzeba wykonać, aby wybrany skrypt AutoHotkey był uruchamiany razem z Windows, jest następująca:

  1. Utwórz skrypt, który ma być uruchamiany razem z Windows (np. global.ahk).
  2. Utwórz skrót do tego skryptu, klikając go prawym przyciskiem myszy i wybierając opcję Utwórz skrót.
    AutoHotkey-01.png
  3. Umieść skrót w folderze „Startup”, na przykład przeciągając go z miejsca, w którym został utworzony, i upuszczając w folderze „Autostart” („Startup”).
    AutoHotkey-02.png

Dzięki utworzeniu odpowiedniego skryptu i umieszczeniu go w folderze „Autostart” wszystkie zdefiniowane hotkey oraz hotstringi są dostępne od razu po uruchomieniu Windows i to nie tylko podczas tłumaczenia, ale zawsze, na przykład podczas pisania maili. (Oczywiście pod warunkiem, że w systemie zainstalowany został program autohotkey.exe).

<< Wróć do poprzedniej strony