AutoHotkey - hotstrings

Ostatnio ogólnie przedstawiłem AHK, opisując możliwości i podając podstawowe przykłady. Poniżej trochę więcej o hotstringach - rozwinięciu/zastąpieniu wpisywanego tekstu, np. wpisanie @@ zostanie zamienione na Jan.Kowalski@mojadomena12.pl

Podstawy

Trochę przypomnienia:

::]gm::Good morning! ;; Good morning!

po wpisaniu ]gm i wciśnięciu klawisza kończącego[1] otrzymamy: Good morning!

::]h::  ;;hi - with empty line after
(
hi,

)

po wpisaniu ]gm i wciśnięciu klawisza kończącego otrzymamy: hi, i wolną linię.

hi,
 

::]p::  ;;regards Jk
(

Regards
  Jan Kowaski
)

po wpisaniu ]p i wciśnięciu klawisza kończącego otrzymamy: wolną linię, pozdrowienia, wcięcie i podpis.

 
Regards
  Jan Kowaski

:*:@@::Jan.Kowalski@mojadomena12.pl ;; mail - :*: expand imediately 

Wpisanie @@ podstawi adres e-mail - bez wciskania klawisza kończącego, czyli natychmiast po wciśnięciu drugi raz małpy - to na skutek gwiazdki po pierwszym dwukropku.

Jeszcze kilka przykładów

::atp::a tak przy okazji
::oidp::o ile dobrze pamiętam
::mz::moim zdaniem
::btw::by the way
::imho::in my humble opinion
::asap::as soon as possible

Można sobie też pomóc w sprawach bardziej technicznych, np. wstawić komentarz rozdzielający podsumowanie w pelicanie

::]ps::<!-- PELICAN_BEGIN_SUMMARY --> 

Możemy wstawić 72 kreski po wpisaniu jedynie trzech

::---:: ;;72 dashes
(
------------------------------------------------------------------------
)

Co możemy też zapisać krócej:

::---:: ;;72 dashes
Send, {- 72}
return

Data i czas

Poniżej podstawowe hotstringi dla podstawiania daty i czasu.

::]te:: ;; 18-07-2015 17:24
FormatTime, CurrentDateTime,, dd.MM.yyyy r. HH:mm
SendInput %CurrentDateTime%
return 
::]ter:: ;; 2015-07-18 17:24
FormatTime, CurrentDateTime,, yyyy-MM-dd HH:mm
SendInput %CurrentDateTime%
return 
::]dz:: ;; 18-07-2015
FormatTime, CurrentDateTime,, dd.MM.yyyy r.
SendInput %CurrentDateTime%
return
::]dzr:: ;; 2015-07-18
FormatTime, CurrentDateTime,, yyyy-MM-dd
SendInput %CurrentDateTime%
return
::]h:: ;; HH:mm
FormatTime, CurrentDateTime,, HH:mm
SendInput %CurrentDateTime%
return

Jeżeli powyższe przykłady nie wystarczą, czas i datę, formatować możemy zgodnie z dokumentacją

I jak wspominałem AHK ma przypadłość robienia tych samych rzeczy na kilka sposobów.

Datę/czas możemy wstawić też za pomocą wbudowanych zmiennych (tutaj razem z formatowaniem nagłówka, co wykorzystuję do wpisów dziennika)

::]ww:: ;;journal entry
{
SendRaw, `n`n`b### %A_Hour%:%A_Min%`n`t
}
Return

Wysyłanie wciśnięć klawiszy

Hotstringi mogą nie tylko wypisywać tekst, ale przeprowadzać i inne operacje np. symulować wciśnięcie innych klawiszy:

::]r::[COLOR="{#}FF0000"][/COLOR]‎{Left 8}
::]q::
Send [QUOTE]^v[/QUOTE]

W pierwszym przykładzie - wpisanie ]r wstawi nam tagi bbCode i cofnie kursor w miejsce pomiędzy nie.

W drugim przykładzie otrzymamy tagi bbCode cytowania - z zawartością schowka pomiędzy nimi (wstawionej za pomocą CTRL+v)

Modyfikatory klawiszy opisywałem wcześniej.

Schowek

Do zawartości schowka możemy odwoływać się, jak w przykładzie wyżej, poprzez wywołanie skrótu wklejania CTRL+v, albo poprzez zmienną Clipboard

::]q::
Send [QUOTE]^v[/QUOTE]

::]pj:: ;; wklej nagłówek z godziną i datą a potem zawartoś schowka 
  {
    SendRaw, `n`n`b### %A_Hour%:%A_Min%`n`t%Clipboard%
  }
Return

Repozytorium z przykładami - github

Jak już zaznaczyłem wyżej, wszystkie przykłady z artykułów, wraz z komentarzami będą uaktualniane w repozytorium na GitHubie.


  1. SPACJA TAB ENTER - ( ) [ ] { } ' : ; " / \ , . ? ! - konfiguracja opisana w dokumentacji.

Załadować komentarze?