vim-wordy
Uncover usage problems in your writing
Features of the wordy plugin
- Pure Vimscript; no external services or libraries needed
- Uses Vimâs native spell-check engine
- Includes 16 dictionaries covering different types of word usage
- Buffer-scoped configuration (leaves your global settings alone)
- Unicode-friendly, including support for âtypographic quotesâ
- User-configurable ring of dictionaries
- NEW adjectives and adverbs, to help you detect overuse
What is wordy?
wordy is not a grammar checker. Nor is it a guide to proper word usage. Rather, wordy is a lightweight tool to assist you in identifying those words and phrases known for their history of misuse, abuse, and overuse, at least according to usage experts.
For example, if wordy highlights moreover
in your document, a word for
which no good usage exists, you should consider a rewrite to eliminate it.
But if wordy highlights therefore
in a sentence where you can demonstrate
the usage is sound, you can elect to keep it âwordy be damned.
Why wordy?
Off-the-shelf proofreading software can scan your text for potential problems and provide comprehensive feedback. However, it may require a complex software installation or transmission of your work to a remote server for checking.
wordy stands ready as a simple alternative to these comprehensive tools, focusing narrowly on identifying potential problems that might otherwise be missed. To compensate for wordyâs bare-bones approach, itâs best used in concert with the literature on usage (Strunk and White, e.g.) and websites like the English Language & Usage Stack Exchange.
Requirements
wordy may require a recent version of Vim.
Installation
You can install using your favorite Vim package manager. (E.g., Pathogen, Vundle, or Plug.) If you are using a recent version of vim or neovim, you can also use native package support. (See :help packages.)
Configuration
On demand
Using this pluginâs commands does not require any special configuration.
Important note: on the first use of each of the pluginâs dictionaries, a spell file will be built. This produces a message that resembles:
Reading word file /Users/reede/.vim/bundle/vim-wordy/data/en/weasel.dic ...
Compressing word tree...
Compressed 618 of 1738 nodes; 1120 (64%) remaining
Writing spell file /Users/reede/.vim/bundle/vim-wordy/spell/weasel.en.utf-8.spl ...
Done!
Estimated runtime memory use: 5600 bytes
Press ENTER or type command to continue
As instructed, press the enter key and it will disturb you no longer, at least until wordy feels the urge to build again.
Ring navigation
Define your own ring of dictionaries, overriding the default one in your
.vimrc
:
let g:wordy#ring = [
\ 'weak',
\ ['being', 'passive-voice', ],
\ 'business-jargon',
\ 'weasel',
\ 'puffery',
\ ['problematic', 'redundant', ],
\ ['colloquial', 'idiomatic', 'similies', ],
\ 'art-jargon',
\ ['contractions', 'opinion', 'vague-time', 'said-synonyms', ],
\ 'adjectives',
\ 'adverbs',
\ ]
You can navigate the ring with the following commands:
:NextWordy
:PrevWordy
Optionally map a key in your .vimrc
to rapidly cycle through the
ring's dictionaries:
noremap <silent> <F8> :<C-u>NextWordy<cr>
xnoremap <silent> <F8> :<C-u>NextWordy<cr>
inoremap <silent> <F8> <C-o>:NextWordy<cr>
You can browse through a flattened list of dictionaries specified in your ring with:
:Wordy <tab>
and optionally map a key such as \w
in your .vimrc
to it by
if !&wildcharm | set wildcharm=<C-z> | endif
execute 'nnoremap <leader>w :Wordy<space>'.nr2char(&wildcharm)
Using wordy
Youâll use the commands that follow to enable wordy. To disable it and restore your previous spell environment, enter the command:
:NoWordy
Use Vimâs Normal mode commands for navigating misspelled words to go to those words flagged by wordy.
]s
- Move to next misspelled word after the cursor.[s
- Like]s
but search backwards
Weak and lazy usage
:Wordy weak
Weak and lazy words are common in first drafts.
We sabotage our writing though weak language, kicking the legs out from beneath our verbs and tearing at the foundations of our nouns, watering down the very points that we are trying to drive home.
- âI got up at precisely 8 AM.â (weak)
- âI woke up at precisely 8 AM.â (better)
We diminish the weight of our ideas by adding modifiers and fillers.
- âThat night was perhaps the most important moment of my life, and I don't think I'll ever forget it.â (weak)
- âThat night was the most important moment of my life, and I'll never forget it.â (better)
Words can also be weakened through overuse.
- âHe actually drove to work in the blizzard.â (weak)
- âHe drove to work in spite of the blizzard.â (better)
When using this dictionary, scrutinize each highlighted word or phrase, asking whether it detracts from the point you are trying to make.
Redundant and problematic usage
:Wordy redundant
:Wordy problematic
Did you ever receive an âadvance warningâ when a mere warning would do? Why plan when you can âplan aheadâ? Why need a thought to âoccur to youâ when the thought can merely âoccurâ?
But redundancies may not actually be redundant: âinvited guestsâ may not if some of the guests have crashed your event. Or dialect differences can erase redundancies, as the British will âprotest againstâ where Americans will simply âprotestâ.
See 50 Problem Words and Phrases for more detail on those issues targeted by problematic.
Puffery and Jargon
âThe man embodies authenticity; his disruptive ideas on self-actualization reflect his dynamic and transformative personality.â (puffery and jargon)
:Wordy puffery
:Wordy business-jargon
:Wordy art-jargon
Instead of puffery, demonstrate through details.
- âThe Empire State Building is breathtakingly tall.â (puffery)
- âMy ears popped several times during the rapid ascent to the 80th floor.â (better)
Manipulative language
:Wordy weasel
Words can be used to hide or obscure a weak position, or to cast doubt on a strong one. They can be used to mislead, to evade blame, or to claim credit where none has been earned.
- âmistakes were madeâ
- âdiscounted up to 50% offâ
- âmost voters feel that my opponent canât be trustedâ
Assuming that youâre not intentionally trying to manipulate others, you will seek to purge such loaded language from your writing.
To be and the passive voice
:Wordy being
:Wordy passive-voice
You may find this dictionary useful in avoiding overuse of the many forms of the verb to be, often found in overly-passive sentences.
Colloquialisms, Idioms, and Similies
:Wordy colloquial
:Wordy idiomatic
:Wordy similies
Dictionaries for uncovering the tired cliché, including colloquial and idiomatic phrases scraped from Wiktionary and Wikipedia.
Adjectives and Adverbs
:Wordy adjectives
:Wordy adverbs
Dictionaries to help you detect the overuse of modifiers.
Miscellaneous
:Wordy said-synonyms
:Wordy opinion
:Wordy contractions
:Wordy vague-time
A few dictionaries to serve specific needs.
If youâre writing to be neutral, you will want to avoid editorializing
(opinion
) and loaded use of âsaidâ (said-synonyms
).
If youâre writing formally, youâll want to identify unintentional
contractions with contractions
. A warning that itâs not yet capturing most
instances of ââsâ, such as âJoeâs not here.â
And finally, vague-time
finds where you are using vague descriptions of
time where you could be more specific.
Configuration
Change where vim-wordy
stores cached spelling files using:
let g:wordy_spell_dir = '/home/my-user/wordy'
See also
- danielbmarques/vim-ditto - new plugin to highlight repeated words
- Words To Avoid in Creative Writing - a brief guide to usage by writer Cary Morton
If you find this plugin useful, you may want to check out these others originally by @reedes:
- vim-colors-pencil - color scheme for Vim inspired by IA Writer
- vim-lexical - building on Vimâs spell-check and thesaurus/dictionary completion
- vim-litecorrect - lightweight auto-correction for Vim
- vim-pencil - rethinking Vim as a tool for writers
- vim-textobj-quote - extends Vim to support typographic (âcurlyâ) quotes
- vim-textobj-sentence - improving on Vim's native sentence motion command
- vim-thematic - modify Vimâs appearance to suit your task and environment
- vim-wheel - screen-anchored cursor movement for Vim
- vim-wordchipper - power tool for shredding text in Insert mode
Future development
This early version targets English usage issues and utf-8 encoding. Support for other languages will be added if thereâs interest. (Hint: pull requests!)
wordy is a work in progress. If youâve spotted a problem or have an idea on improving this plugin, please post it to the GitHub project issue page. Contributions are welcome.