Lesson 5: Prefix And Suffix Strokes

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 phoneme 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.

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

You should use prefix and suffix strokes whenever they're available. But there are a great many prefix and suffix strokes defined in the dictionary file. You don't need to learn all of them right away. Here is a good rule of thumb:

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

That's probably the easiest way to proceed. 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.

Some Starter Strokes

For the current lesson, I googled a list of common prefixes and suffixes. According to the page, they account for 97% of all cases. These seem like a good starting point for learning Plover:

Prefixes

  • 'un-': UPB
  • 're-': RE
  • 'in-': EUPB
  • 'im-': EUPL
  • 'ir-': EUR
  • 'dis-': TKEUS
  • 'en-': EPB
  • 'em-': EPL
  • 'non-': TPHAUPB
  • 'over-': AUFR
  • 'mis-': PHEUZ
  • 'sub-': SAUB
  • 'pre-': PRE
  • 'inter-': EUPBT
  • 'fore-': TPOER
  • 'de-': TKE
  • 'trans-': TRAPBS
  • 'super-': SAOUP
  • 'semi-': SPHEU
  • 'anti-': A*EUPBT
  • 'mid-': PHEUD
  • 'under-': UPBD

Some examples:

  • 'underwear': UPBD/WAER
  • 'misdeed'PHEUZ/TKAOED
  • 'embalm': EPL/PWAUPL
  • 'disease': TKEUZ/AOEZ
  • 'retreat': RE/TRAOET

Suffixes

  • '-s': -S
  • '-ed': D
  • '-ing': G
  • '-ly': HREU
  • '-er': *ER
  • '-or': O*R
  • '-tion': SH*UPB
  • '-ation': AEUGS
  • '-ion': KWROPB
  • '-able': BL
  • '-al': A*L
  • '-ial': KWRAL
  • '-ness': -PBS

Some examples:

  • 'happily': HAP/HREU
  • 'cider': SAOEUD/*ER
  • 'relation': REL/AEUGS

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 command will display all prefix and suffix entries for you.

Prefix strokes:

$ grep "\{\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 "\{\^\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.