commit db71640977be1f9ff24cc0d2833a151ab8c751ab Author: Reed Esau Date: Sun Dec 29 01:37:12 2013 -0700 first cut diff --git a/LICENSE.markdown b/LICENSE.markdown new file mode 100644 index 0000000..44fe50a --- /dev/null +++ b/LICENSE.markdown @@ -0,0 +1,23 @@ +License: The MIT License (MIT) + +Copyright (c) 2013,2014 Reed Esau + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + diff --git a/README.markdown b/README.markdown new file mode 100644 index 0000000..c5568f9 --- /dev/null +++ b/README.markdown @@ -0,0 +1,98 @@ +# vim-litecorrect + +> Lightweight auto-correction for Vim + +We type `teh` when we meant to type `the`. This plugin is to help us catch +the most common of these typos and correct each upon hitting the space +bar. + +Features of this plugin: + +* Focused on the most common of typos that we make +* Uses Vim’s `iabbrev` +* Buffer-scoped +* User-extendable + +Note that this plugin is not a replacement for teh spell checker in Vim. + +This plugin defines the most common typos we make along with their corrections: + + ``` + let g:litecorrect#defaults = + \{'I' : ['i'], + \ 'The' : ['TEh', 'Teh'], + \ 'that' : ['htat'], + \ 'the' : ['hte', 'teh'], + \ 'this' : ['htis'], + \ 'then' : ['tehn'], + \ 'what' : ['waht'], + \} + ``` + +Note that the corrections are the keys, with the misspellings for each stored +in a list. + +## Requirements + +May require a recent version of Vim. + +## Installation + +Install using Pathogen, Vundle, Neobundle, or your favorite Vim package +manager. + +## Configuration + +Because you may not want auto-corrections in all file types you edit, you can +configure this plugin per file type. For example, to enable litecorrect support +in `markdown` and `textile` files, place in your `.vimrc`: + + ```vim + augroup litecorrect + autocmd! + autocmd FileType markdown call litecorrect#init() + autocmd FileType textile call litecorrect#init() + augroup END + ``` + +Alternatively, you can build on the defaults by provide your own corrections: + + ``` + let user_dict = { + \ 'maybe': ['mabye'], + \ 'medieval': ['medival', 'mediaeval', 'medevil'], + \ 'then': ['hten'], + \ } + augroup litecorrect + autocmd! + autocmd FileType markdown call litecorrect#init(user_dict) + augroup END + ``` + +The corrections you provide will be in addition to those in those in +`g:litecorrect#defaults`. Where there’s a conflict, your correction will +prevail. + +## Criteria to add to defaults + +Suggestions for adding to the defaults are welcome, but good evidence is +needed that they are common typos. + +## See also + +For a more comprehensive approach, check out +[vim-autocorrect](https://github.com/panozzaj/vim-autocorrect). + +If you like this plugin, you may like these other ones from the same author: + +* [vim-quotable](http://github.com/reedes/vim-quotable) - extends Vim to + support typographic (‘curly’) quotes +* [vim-writer](http://github.com/reedes/vim-writer) - Extending Vim to better + support writing prose and documentation + +## Future development + +If you have any ideas on improving this plugin, please post them to the github +project issue page. + + diff --git a/plugin/litecorrect.vim b/plugin/litecorrect.vim new file mode 100644 index 0000000..f6b865a --- /dev/null +++ b/plugin/litecorrect.vim @@ -0,0 +1,43 @@ +" ============================================================================ +" File: litecorrect.vim +" Description: vim-litecorrect plugin +" Maintainer: Reed Esau +" Last Change: December 29, 2013 +" License: The MIT License (MIT) +" ============================================================================ + +scriptencoding utf-8 + +if exists('g:loaded_litecorrect') || &cp | finish | endif +let g:loaded_litecorrect = 1 + +" Save 'cpoptions' and set Vim default to enable line continuations. +let s:save_cpo = &cpo +set cpo&vim + +" a dictionary of the most common of typos +let g:litecorrect#defaults = + \{'I' : ['i'], + \ 'The' : ['TEh', 'Teh'], + \ 'that' : ['htat'], + \ 'the' : ['hte', 'teh'], + \ 'this' : ['htis'], + \ 'then' : ['tehn'], + \ 'what' : ['waht'], + \} + +function! litecorrect#init(...) + let l:user_dict = a:0 ? a:1 : {} + for l:dict in [ g:litecorrect#defaults, l:user_dict ] + for l:item in items( l:dict ) + let l:fixed = l:item[0] + for l:subitem in l:item[1] + execute 'ia ' . l:subitem . ' ' . l:fixed + endfor + endfor + endfor +endfunction + +let &cpo = s:save_cpo +unlet s:save_cpo +" vim:ts=2:sw=2:sts=2