I'm trying to set up a macro to replace sharp with ♯ and flat with♭. I initially tried this with System Preferences > Keyboard text replacement, but this requires me to enter a space before the trigger, which results in for example C_♯, whereas what I really want is C♯.
So, I've turned to Keyboard Maestro. The "string is typed" trigger works well to replace the text with the character I want, only there are times when I actually want to have the word and not the symbol.
The nice thing about the macOS native text replacement is that I can undo (cmd+z), or in some cases confirm the replacement from a bubble UI element that appears at the text insertion cursor. Is there a way to recreate either behaviour?
I suspect you’ll soon get mightily annoyed at having confirm every entry (or correct half of them). Consider using a simple but unmistakable string as the trigger for your symbol replacement—maybe “ssharp” and “fflat.” The doubled letters are very fast to type and work as a clue to yourself that you want the symbol rather than the word.
I’m assuming, by the way, that you’ve decided you don’t want to use Shift-3 for sharps.
That's not a bad idea, ssharp and fflat could work. Perhaps I'll try sharpp and flatt, that way I can more easily add the extra character if I forget.
I decided not to use shift-3 because I often need the hash character too (as well as £ which is alt-3 on my system), and I seem to forget any combination of more than one modifier.
Don't forget that typing ⇧-Space or ⌘-. (or simply pausing a few seconds) will "cancel" the sequence -- so you could type "sharp" to insert the sharp symbol and "sh(⇧-Space)arp" to type "sharp".
Personally I'm proponent of prefixes so would use ";sh" and ";fl" as triggers -- YMMV.