Amazon.com

Disclaimer

All the tips/hints/fixes/other information posted here are at your own risk. Some of the steps here could result in damage to your computer. For example, using a Windows registry editor like RegEdit could result in unintended serious changes that may be difficult or impossible to reverse. Backups are always encouraged.

10 May 2008

Quickly Insert Unicode (Greek, Symbols, etc.) into Any Application

Perhaps someday I'll write one killer article all about AutoHotkey and how it can accelerate your productivity, but for now I'll just discuss one problem it can (help) solve: inputting special characters such as α or → with ease. I put "help" in quotation marks, because AHK does not have an easy, built-in way of inputting Unicode characters (yet), but it can do effective text auto-replace (a.k.a. hotstrings). There are several clever solutions on the AHK forums for the Unicode deficit (SendU, etc.), and here's mine:

Add the following string entry to the Registry for the Alt-Plus method of entering characters:
Key: HKCU\Control Panel\Input Method
String name: EnableHexNumpad
Value: 1
After a restart, you can enter Unicode characters by their hexadecimal value. [That's the alphanumeric number U+03c3 in the left part of the status bar in Character Map.] Hold down Alt and press the + key on the numeric pad and then the hex code for the character you want, without the leading zeroes if you like and then release the Alt key. Convoluted, huh? Here's a script that show's how to make light work of it with AHK: specialchar.ahk

With this kind of script running, "/alpha" immediately becomes "α"

Bonus tip: you can use a "raw" hotstring for faster entries:
#IfWinActive HiEditor ; or whatever editor you use for editing AHK scripts
#Hotstring R
::<<::{alt down}{numpadadd}
::>>::{alt up}
#Hotstring R0
#IfWinActive

BTW, I should mention that AHK has a {ASC nnnnn} function for the alt-numpad method of entering special characters, but it has 2 main problems: it can enter only the decimal and not the hexadecimal code for a character (which is fine for ASCII and ANSI but less convenient for Unicode), and only certain applications using the RichText framework can interpret Unicode characters entered this way (decimal).

No comments:

Post a Comment