This is an autocorrect plugin built from scratch. Every word added to the autocorrect file was spelled incorrectly by me at some point while typing in Vim. In fact, several were added during the writing of this README file.
I highly suggest the use of a Vim package manager plugin. Do a search in your favorite search engine, and you will see lots of examples.
VIM 8.0 does do a much better job with package management (check out this screen cast from one of the best, Drew Neil - every Vim user should read his book "Practical Vim"), although I personally use vim-plug. Check them out.
By default, the autocorrect abbreviations are not executed to keep Vim startup time fast. There are two main functions/commands to get started. They are the commands:
:AutocorrectTryLoad
and
:AutocorrectForceLoad
By default, <leader>ta
maps to AutocorrectTryLoad
and <leader>fa
maps to AutocorrectForceLoad
. These will not overwrite existing
mappings.
You can change the mappings to your preference with a line like
nmap {new map chars} <Plug>(AutocorrectTryLoad)
nmap {new map chars} <Plug>(AutocorrectForceLoad)
in your vimrc file.
For example, you could change it to be <leader>l
using
nmap <leader>l <Plug>(AutocorrectTryLoad)
If you don't want the default mappings at all,
then you can disable them by setting the variable g:AutocorrectDisableDefaultMappings
to 1
.
ForceLoadAutocorrect
will always reread all the corrections. This is
important when you add in corrections to your personal autocorrect file
(See more on this here). AutocorrectTryLoad
will do the
same thing as AutocorrectForceLoad
, but only if it has never been run
before.
At this point, type your prose as normal and let the autocorrections do the hard work for you!
You can easily extend the list with your own personal autocorrect file. By default, once the autocorrect plugin has been loaded you can quickly add words to your personal autocorrect file with the mapping (standing for [A]dd Abbreviation):
<leader>a
This mapping will by default open up a .autocorrect
file in your home
directory, with the iabbrev
command ready to go (:h iabbrev
). If the
first suggested option isn't what you want the correction to be, just
change it.
You can modify the key binding for adding words to the autocorrect list by mapping to:
nmap {new map chars} <Plug>(AutocorrectAddToAbbrev)
Of course. All you have to do is add a List of filetypes to the variable
g:AutocorrectFiletypes
in your vimrc. As an example,
let g:AutocorrectFiletypes = ["text","markdown","tex"]
Be aware these are case sensitive as they are directly put into an autocommand behind the scenes like:
autocmd FileType text,markdown,tex AutocorrectTryLoad
Yes you can. Just put something like
let g:AutocorrectPersonalFile='~/mydirectory/mynewfile.anyextension'
in your vimrc file.
You can do that as well. To disable loading my list, just set the
variable g:AutocorrectDisableBuiltIn
in your vimrc to anything. Now
only the personal autocorrect file will be sourced.
Example:
let g:AutocorrectDisableBuiltIn = 1
Now you can start building up your own personal autocorrect list without any of my mistakes adding cruft!
I typically will just write and type quickly, and then use the [s
command to move backwards through the incorrect spellings. Then I use
the <leader>a
mapping to add the autocorrection, press ZZ
to save
and exit the file, and then use 1z=
to take the first autocorrection
if the correct word appeared in the personal autocorrect file, or just
z=
if I want to see the other spell check options.
Note that the personal autocorrect file is simply sourced as a vimscript
file. So if you put other commands besides iabbrev
in there, Vim will
attempt to execute them. So if you put silly things in there and
exceptions result, that will be on you.
This list was built slowly, one word at a time, and only words that I have actually typed incorrectly with my own fingers are on the list. This list was not generated by an algorithm. Because of this, I feel there is much less waste and more crazy misspelling that occurs in practice.
I don't plan on stopping using Vim for a long time, so this is only going to grow, but I figured everyone should reap the benefits of this.