Lesson 5: Prefix And Suffix Strokes

This is Aerick's video on remaining Plover lessons and the dictionary file format:

Aerick's 3rd Plover Video

Multi-Stroke Words

Hey! You’ve been typing words as single strokes, now you can learn how to do it with several! Here’s how. In fact, a lot of words in Plover's dictionary file use more than one stroke to type. So, you'll press a set of keys for the beginning sounds of a word, then release them, and press another set of keys for the next sounds in the word, and so on. Once you've pressed the correct series of strokes for all the sounds of the word, out pops the desired word.

Everything you've learned for single-stroke words applies to multi-stroke words as well. The phonemes use the same chords; you can drop unstressed vowels, do inversions, and so on. So there is no new primary knowledge to learn for multi-stroke words. However, there are certain problems that can crop up just by virtue of the stroking process itself; and the solutions to these problems are covered in this and related sections. For starters, you really need to learn about prefix and suffix strokes.

What Are Prefix And Suffix Strokes?

Plover supports multi-stroke words, which are very important, but they do introduce the possibility of multi-stroke homophonic conflicts, as described in Appendix: Word Boundaries.

Prefix and suffix strokes are strokes that typically sound similar to the start or end of the word they are part of, but that are constructed in such a way that they would never be found at the other end of a word. So, a prefix stroke would never correspond to the final stroke of any word in the dictionary file, and a suffix stroke would never correspond to the starting stroke of any word in the dictionary file. This allows Plover to know for certain that you intend a given stroke to be really and truly the start or end of a word, so Plover doesn't have to use its internal logic to make that choice for you.

Prefix and suffix strokes most often correspond to parts of words that are generally considered prefixes and suffixes in the English language. Word-parts like 'em-', 'en-', 're-', '-ed', '-ing', and '-ment'. But Plover isn't a grammarian - any word-part that's used a lot at the start or end of a word may have a prefix or suffix stroke associated with it, even if it isn't technically a prefix or suffix in English. You can also define your own prefix and suffix strokes, just the way you can define any other Plover dictionary entry. Prefixes and suffixes are denoted in the dictionary using a caret, '^'. Appendix: The Dictionary Format describes '{^}' commands in more detail.

Consider the '^y' suffix stroke KWREU. As you can see, it's an odd little key cluster that inexactly resembles the associated English suffix. But by using it, Plover is able to unfailingly recognize PUP/KWREU as the word 'puppy', regardless of any surrounding strokes.

Or consider the 'over^' prefix stroke AUFR. It doesn't sound phonetically quite right either, but with it, Plover is able to recognize AUFR/KOPL as the word 'overcome'. If you had used the more phonetic strokes OEFR/KOPL, Plover would have output the two words 'over come'.

Many suffixes are distinguished from word parts by adding the *; the word 'on' is OPB, while the '^on' suffix as used in a word like 'mutton', is O*PB. Many prefixes are distinguished from word parts by altering the vowels; the 'on^' prefix as used in a word like 'onramp', is AUPB. But these are not universal rules. As you learn more prefix and suffix strokes, you may recognize more of the patterns behind them. If you're ever unsure about how to make a prefix or suffix, consult the dictionary file.

When To Use Them

Prefix and suffix strokes are crucial elements of achieving your fastest possible typing speeds. You should use them whenever they're available. They should not be thought of as 'extra' features of the system, but as core elements that you should practice diligently. There are many prefix and suffix strokes defined in your dictionary file, and the more of them you learn, the better.

The following tables list nearly all the prefix and suffix strokes you are likely to encounter in daily use. As soon as you start learning multi-stroke words in Plover, you should also start practicing words that use prefix and suffix strokes. You can find some good interactive drills at Typey Type's Multi-syllable words with prefixes and Multi-syllable words with suffixes pages. In addition to drilling, here is a good rule of thumb for daily use:

Whenever you encounter a word boundary error, learn the prefix or suffix stroke that would have avoided that error.

If you follow that guideline, you'll learn the prefix and suffix strokes that match your own writing style and vocabulary. Over time, you'll find yourself less and less often needing to look up a new prefix or suffix stroke.

It can be inconvenient to stop what you're doing and learn a new stroke. Lesson 6: Prefix/Suffix Alternatives describes ways to avoid that interruption. But you should regard those techniques as the wrong way to type with Plover. You'll never type fast that way. Use those techniques as an expedient when you don't know the right prefix or suffix stroke for a situation, but always go back and learn the proper prefix or suffix stroke afterwards.

Most Common Prefix And Suffix Strokes

For the current lesson, I googled a list of common prefixes and suffixes. According to the cited research, they account for 97% of all prefixed and suffixed words in printed American school English for grades 3-9. These are a good starting point for learning Plover:


  • 'un^': UPB. For example, write 'unto' using UPB/TO.
  • 're^': RE. For example, write 'replied' using RE/PHRAOEUD.
  • 'in^': EUPB. For example, write 'increase' using EUPB/KRAOES.
  • 'im^': EUPL. For example, write 'impossible' using EUPL/POB.
  • 'ir^': EUR. For example, write 'irregular' using EUR/REG.
  • 'dis^': TKEUS. For example, write 'displayed' using TKEUS/PHRAEUD.
  • 'en^': EPB. For example, write 'endure' using EPB/TKAOUR.
  • 'em^': EPL. For example, write 'embrace' using EPL/PWRAEUS.
  • 'non^': TPHAUPB. For example, write 'nondescript' using TPHAUPB/TKE/SKREUPT.
  • 'over^': AUFR. For example, write 'overcome' using AUFR/KOPL.
  • 'mis^': PHEUZ. For example, write 'mistook' using PHEUZ/TAOBG.
  • 'sub^': SAUB. For example, write 'sublime' using SAUB/HRAOEUPL.
  • 'pre^': PRE. For example, write 'pretend' using PRE/TEPBD.
  • 'inter^': EUPBT. For example, write 'interview' using EUPBT/SRAOU.
  • 'fore^': TPOER. For example, write 'forehead' using TPOER/HED.
  • 'de^': TKE. For example, write 'details' using TKE/TAEULS.
  • 'trans^': TRAPBZ. For example, write 'transverse' using TRAPBZ/SRERS.
  • 'super^': SAOUP. For example, write 'supernatural' using SAOUP/TPHARL.
  • 'semi^': SPHEU. For example, write 'semicolon' using SPHEU/KHROPB.
  • 'anti^': A*EUPBT. For example, write 'antidote' using A*EUPBT/TKOET.
  • 'mid^': PHEUD. For example, write 'midday' using PHEUD/TKAEU.
  • 'under^': UPBD. For example, write 'undertake' using UPBD/TAEUBG.


  • '^s': -S. For example, write 'relations' using RELGS/-S.
  • '^ed': D. For example, write 'answered' using AEPBS/-D.
  • '^ing': G. For example, write 'singing' using SEUPBG/-G.
  • '^ly': HREU. For example, write 'scarcely' using SKAEURS/HREU.
  • '^er': *ER. For example, write 'former' using TPORPL/*ER.
  • '^or': O*R. For example, write 'governor' using TKPWOFPB/O*R.
  • '^ation': AEUGS. For example, write 'expectation' using KP-PT/AEUGS.
  • '^ion': KWROPB. For example, write 'onion' using OPB/KWROPB.
  • '^able': -BL. For example, write 'remarkable' using RARBG/-BL.
  • '^al': A*L. For example, write 'withal' using W/A*L.
  • '^ial': KWRAL. For example, write 'cordial' using KORD/KWRAL.
  • '^ness': -PBS. For example, write 'darkness' using TKARBG/-PBS.

It's worth mentioning that in some cases a compound cluster (see Lesson 3E: Compound Clusters) can and should save you from needing to type a full prefix or suffix stroke. For example, '^tion' can be appended to any word using the SH*UPB suffix stroke, but it is almost never used because there are several compound clusters that are almost always the better option. For '^tion' there is  -GS, for '^ation' there is  AEUGS, and for '^ization' there is SA*EUGS. And in general, compound clusters should be used instead of prefix or suffix strokes when possible, because they shave an entire stroke off your word, and thus tend to increase your overall typing speed.

To become proficient with stenography though, you'll need to learn more than just these cases so that you can piece together any word you could possibly need to write.

Here is a more comprehensive list of prefixes:

'un^': UPB
'in^': EUPB
'im^': EUPL
'ir^': EUR
're^': RE
'dis^': TKEUS
'de^': TKE
'en^': EPB
'em^': EPL
'up^': AUP
'co-^': KOE
'co^': KAU (since Plover 3)
'con^': KAUPB
'out^': AOUT
'for^': TPAUR
'fore^': TPOER
'mis^': PHEUZ
'pro^': PRO
'pre-^': PRE*
'pre^': PRE
'sub^': SAUB
'self-^': SEF
'semi^': SPHEU
'back^': PWAEBG
'down^': KWROUPB
'over^': AUFR
'under^': UPBD
'inter^': EUPBT
'intro^': EURPBT
'hyper^': HAOEURP
'micro^': PHAOEURBG
'super^': SAOUP
'trans^': TRAPBZ
'anti^': A*EUPBT
'anti-^': A*EUPBT/H-PB
'mid^': PHEUD
'mid-^': PHEUD/H-PB
'non^': TPAUPB
'on^': AUPB

Note the 4 exceptions in the above prefix table that add * to the prefix stroke. This is part of the enforced irregularity of prefix and suffix strokes in steno theory, that prevent them from matching strokes that might be used for other prefix or suffix strokes, or for their own whole words. For example, A*EUPBT includes the asterisk for the 'anti^' prefix stroke, because AEUPBT is needed to stroke the word 'ain't'.

Here is a more comprehensive list of suffixes:

'^s': -S
itious': EURBS
aceous': AEURBS
licious': HREURBS
ticious': TEURBS
ious': KWROUS
orious': OR/KWROUS
'^uous': WOUS
inous': TPHOUS
ulus': HRUS
th': *T
ean': KWRA*PB
tion': SH*UPB
'^ation': AEUGS
ication': KAEUGS
mation': PHAEUGS
ration': RA*EUGS
sation': SAEUGS
ization': SA*EUGS
'^tation': TAEUGS
'^tization': TAOEUZ/AEUGS
ician': *EUGS
ibition': PWEUGS
etition': TEUGS
dition': TKEUGS
ification': TPAEUBGS
fication': TPEUBG/A*EUGS
'^ination': TPHAEUGS
arian': AEURPB
ian': KWRAPB
itarian': TAEURPB
ing': -G
ating': AEUT/-G
'^ling': HREUPBG
nizing': TPHAOEUZ/-G
ening': TPHEUPBG
ifying': TPAOEUG
making': PHA*EUG
keeping': KAO*EP/-G
'^keeper': KAO*EP/*ER
'^er': *ER
'^eer': AO*ER
ler': HRER
ier': KWRER
bler': PWHRER
ster': STER
ener': TPHER
ever': SKWREFR
'^over': O*EFR
made': PHA*ED
make': PHA*EUBG
maker': PHA*EURBG
making': PHA*EUG
meter': PHAO*ERT
ometer': OPLT/*ER
'^taker': TA*EURBG
ally': A*EL
ually': WAEL
ively': EUFL
ularly': HRARL
iorly': KWRORL
'^ously': O*ULS
'^ically': KHREU
atically': AT/KHREU
ably': PWHREU
rably': RAEBL
inally': TPHAEL
fully': TPHREU
or': O*R
'^ior': KWROR
able': -BL
ability': -BLT
ible': EUBL
ibility': EUBLT
izable': AOEUBL
ical': K*L
ural': RAL
ual': WAL
ial': KWRAL
inal': TPHAL
arial': AEURL
ential': EPBL
'^logical': HR-L
'^monal': PHOEPBL
cidal': SAOEUD/A*L
ity': TEU
ivity': *EUFT
icity': EUS/TEU
ticity': TEUS/TEU
'^tivity': T*EUFT
iality': KWRALT
iority': KWRORT
ularity': HRA*EURT
uosity': WOS/TEU
ness': -PBS
iness': *EUPBS
'^liness': HR*EUPBS
ary': AER
ance': APBS
'^a': SKWRA
'^e': SKWRE
'^i': SKWREU
'^o': SKWRO
'^u': SKWRU
'^y': KWREU

Looking Up Prefix And Suffix Strokes

To learn new prefix and suffix strokes, you'll need to look them up in your dictionary file. Try to make this as easy a process as you can.

  • Learn the location of your dictionary file on disk.
  • Learn the format of dictionary entries, so you can read and understand them.

If you're on a UNIX system, a simple grep -E command will display all prefix and suffix entries for you.

Prefix strokes:

$ grep -E "\{\w\w*\^\}" dict.json
"*EFR": "{every^}",
"*ERBGS": "{extra^}",
"*EUPL": "{im^}",
"*FR": "{ever^}",
"A": "{a^}",
"A*EPBT": "{ante^}",
"A*ER": "{aero^}",
"A*F": "{after^}",
"A*UT": "{auto^}",
"A*UT/SKWRO": "{auto^}",

Suffix strokes:

$ grep -E "\{\^\w\w*\}" dict.json
"*BG": "{^k}",
"*EB": "{^en}",
"*EFBG": "{^esque}",
"*EPB": "{^en}",
"*EPB/TPELD": "{^enfeld}",
"*ER": "{^er}",
"*ERS": "{^ers}",
"*ES": "{^ess}",
"*ET": "{^eth}",
"*EUFPL": "{^ism}",

As you can see, there are many, many prefix and suffix strokes in the dictionary file. Don't try to learn them all at once, just make sure you know how to find them when you need them.