├── README.markdown
├── autoload
└── vim_you_autocorrect.vim
├── doc
└── vim-you-autocorrect.txt
├── plugin
└── vim_you_autocorrect.vim
└── trailer
├── vim-you-autocorrect.cast
└── vim-you-autocorrect.gif
/README.markdown:
--------------------------------------------------------------------------------
1 | # Vim You, Autocorrect!
2 |
3 | *Why should smartphones get all the fun?*
4 |
5 | ## UPDATE!!! New Version!
6 |
7 | *Hot off the presses!*
8 |
9 | Vim 1.1 adds NEW FEATURES, finally allowing you to enter INCORRECT and LESS
10 | CORRECT words into your screenplay. LEAP back to corrected words. UNDO
11 | corrections, restoring your typos to their former glory. SKIP through Vim's
12 | suggested spellings with simple USER CONFIGURABLE mappings. HIGHLIGHT the
13 | latest correction to be reminded how often this plugin has saved you from
14 | embarrassing yourself with your preschool-level understanding of how words are
15 | spelled.
16 |
17 | See [`:help autocorrect-advanced-configuration`](https://github.com/sedm0784/vim-you-autocorrect/blob/d20e80b204db91f9aa65f1ff81d4cbf60b8cc470/doc/vim-you-autocorrect.txt#L81) for more details.
18 |
19 | ## Original Blurb
20 |
21 | Find Vim’s commands for correcting spelling mistakes UNWIELDLY? Long for a
22 | solution that approaches the EASE-OF-USE and FOOLPROOF SOPHISTICATION of your
23 | phone’s autocorrect mechanism?
24 |
25 | Look no further!
26 |
27 |
28 |
29 | 
30 | View the trailer at asciinema.org
31 |
32 |
33 |
34 | Vim You, Autocorrect! HARNESSES the power of Vim’s `'spell'` option,
35 | AUTOMATICALLY replacing spelling mistakes and typos as you type.
36 |
37 | Just install in the usual way — manually or with your
38 | favourite plugin manager — and marvel at the BLEMISH-FREE
39 | prose that FLOWS onto your screen as your fingers DANCE over the keycaps.
40 |
41 | For more details, type `:help vim-you-autocorrect` once installed, or SURF
42 | over to the documentation, [right here on
43 | Github](https://github.com/sedm0784/vim-you-autocorrect/blob/master/doc/vim-you-autocorrect.txt)!
44 |
--------------------------------------------------------------------------------
/autoload/vim_you_autocorrect.vim:
--------------------------------------------------------------------------------
1 | " Set cpoptions so we can use line continuation
2 | let s:save_cpo = &cpoptions
3 | set cpoptions&vim
4 |
5 | " Use old regexp engine. Necessary to avoid error E868 when using all the
6 | " equivalence classes, below.
7 | let s:letter_regexp = '\%#=1['
8 | let s:letter_regexp .= '[=a=][=b=][=c=][=d=][=e=]'
9 | let s:letter_regexp .= '[=f=][=g=][=h=][=i=][=j=]'
10 | let s:letter_regexp .= '[=k=][=l=][=m=][=n=][=o=]'
11 | let s:letter_regexp .= '[=p=][=q=][=r=][=s=][=t=]'
12 | let s:letter_regexp .= '[=u=][=v=][=w=][=x=][=y=]'
13 | let s:letter_regexp .= '[=z=]'
14 | " Greek/Coptic
15 | let s:letter_regexp .= 'Ͱ-Ͽ'
16 | " Cyrillic
17 | let s:letter_regexp .= 'Ѐ-ӿ'
18 | " Apostrophe!
19 | let s:letter_regexp .= "'"
20 | let s:letter_regexp .= ']$'
21 |
22 | " ***************
23 | " * *
24 | " * Autocorrect *
25 | " * *
26 | " ***************
27 |
28 | function! s:autocorrect() abort
29 | let edit_pos = getpos('.')
30 |
31 | if s:pos_before(edit_pos, s:start_pos)
32 | " If the user backspaces past the position where they entered insert mode,
33 | " we still want to correct their mistakes.
34 | "
35 | " This might not work well for HERETICS who use the arrow keys in insert
36 | " mode, but that's really on them.
37 | let s:start_pos = edit_pos
38 | endif
39 |
40 | let line = getline('.')
41 | let before_cursor = line[:edit_pos[2] - 2]
42 |
43 | " N.B. It would probably be better just to check the last 4 bytes, but that
44 | " would require doing MATHS: I'm guessing this is still pretty quick unless
45 | " your line is *really* long. (I'm also not sure if that would break if the
46 | " start of the last 4 bytes comes halfway through a code point.)
47 | if empty(line)
48 | \ ||
49 | \ before_cursor !~? s:letter_regexp
50 |
51 | if (s:no_error_nearby(before_cursor))
52 | return
53 | endif
54 |
55 | " Jump to the error
56 | silent! keepjumps normal! [s
57 |
58 | let spell_pos = getpos('.')
59 |
60 | try
61 | " When there is no spelling mistake, although the cursor hasn't moved, the
62 | " value for `spell_pos` is still one column back from `edit_pos`. I don't
63 | " really understand why this is.
64 | let weird_spell_pos = [-1, 0, 0]
65 | let weird_spell_pos[1] = spell_pos[1]
66 | let weird_spell_pos[2] = spell_pos[2] + 1
67 |
68 | " Check:
69 | "
70 | " a). That a spelling mistake exists (i.e. if the cursor moved),
71 | " b). That the spelling mistake is behind us (we might have wrapped around
72 | " to a mistake later in the buffer),
73 | " c). That the spelling mistake is within the area covered by the current
74 | " insert session. We don't want to leap back to earlier mistakes.
75 | "
76 | " I also considered an approach where I checked if jumping back a word
77 | " took us to same position as `[s`: in this way we'd only check the most
78 | " recent word we typed. This doesn't work because:
79 | "
80 | " a). We can't use `b` because that will break for apostrophes.
81 | " b). We can't use `B` because that will break for stuff-like-this.
82 | "
83 | " I guess I could use a backwards search using the same regular expression
84 | " to find beginning of the "spell-word". This would fire correctly when we
85 | " e.g. change only the second half of a word with our insert. If this
86 | " weren't just a joke plugin, that should probably go on the roadmap or
87 | " issues list.
88 | if !s:pos_same(weird_spell_pos, edit_pos)
89 | \ &&
90 | \ s:pos_before(spell_pos, edit_pos)
91 | \ &&
92 | \ (s:pos_before(s:start_pos, spell_pos) || s:pos_same(s:start_pos, spell_pos))
93 |
94 | " Reset correction index
95 | let w:vim_you_autocorrect_correct_count = 1
96 |
97 | let adjustment = s:correct_error(spell_pos, edit_pos, 1)
98 | call s:update_position(edit_pos, spell_pos, len(w:vim_you_autocorrect_before_correction), adjustment)
99 | endif
100 | finally
101 | " Reset the cursor position.
102 | silent! call setpos('.', edit_pos)
103 | endtry
104 | endif
105 | endfunction
106 |
107 | function! s:no_error_nearby(before_cursor) abort
108 | if !exists('*spellbadword')
109 | " We can't check for nearby spelling errors without this function
110 | return 0
111 | endif
112 |
113 | " Users have reported flickering whenever a word is typed. I couldn't
114 | " reproduce (except by adding a hard-coded redraw/sleep), but it seems
115 | " like the problem is that Vim is redrawing (very briefly) when we jump to
116 | " the spelling mistake, so if the movement causes a scroll, (e.g. if the
117 | " spelling error is off-screen), we get a flicker of that section of the
118 | " buffer.
119 | "
120 | " Attempting to work around it by checking if there's a spelling error
121 | " *before* invoking [s . We do this by the mechanism of looking for a
122 | " spelling error behind the cursor on this line or the previous one.
123 | "
124 | " Note that, if the closest spelling error is further back in the buffer,
125 | " Vim You, Autocorrect! would decline to correct it anyway, reasoning that
126 | " it cannot just have been typed if it's over a line away.
127 | "
128 | " Note also that if there is a spelling error on this line, it's not
129 | " relevant for this issue whether or not the user typed it in this insert:
130 | " either way, jumping to it won't cause a (vertical) scroll.
131 | "
132 | " Note finally that if the user is at the top of the screen (accounting
133 | " for 'scrolloff'), they cannot possibly just have hit enter (because then
134 | " their cursor would have moved one screen line line lower down, so we
135 | " *don't* want to scroll to any errors in the line immediately above.
136 | "
137 | " Note seriously for the last time that if there is an error at the start
138 | " of a very long soft-wrapped line, and that error is off-screen, then the
139 | " entire line must be off-screen, because of the way Vim will never display
140 | " partial lines at the top of the window. (Only at the bottom when
141 | " 'display' is set appropriately.)
142 | "
143 | let cursor_can_move_vertically = winheight(0) > &scrolloff * 2 + 1
144 |
145 | " Vim will never display the first line in the file any lower than the top
146 | " of the window: essentially, scrolloff is ignored at the top of the
147 | " file.
148 | let scrolloff_adjust = line('.') > &scrolloff + 1 ? &scrolloff : 0
149 | let top_of_window = winline() - scrolloff_adjust <= 1
150 |
151 | " In order to avoid incorrectly scrolling to the start of a long
152 | " soft-wrapped line, we only check the last word before the cursor.
153 | "
154 | " In order to avoid incorrectly scrolling when there's a mistake early on
155 | " the previous line and 'scrolloff' is super high, we only check the final
156 | " word on the line.
157 | "
158 | " There are edge cases in the above where what 'spell' considers to be a
159 | " word does match whitespace delimination. Too hard to fix though, unless
160 | " lots of people complain.
161 | "
162 | " There's also an edge case for scrolloff=999 where the last word on this
163 | " or the previous line wasn't added by the previous insert. But this will
164 | " be pretty uncommon.
165 | "
166 | " If we only check the last word on the line, then we'll miss SpellCap
167 | " errors, as the call to spellbadword won't know about the punctuation
168 | " ending the previous sentence. Instead, we now check the last two words on
169 | " this and, when necessary, the previous line.
170 | let before_cursor_list = split(trim(a:before_cursor))
171 | let previous_line_list = split(trim(getline(line('.') - 1)))
172 | let previous_previous_line_list = split(trim(getline(line('.') - 2)))
173 |
174 | let text_to_check = s:last_two_words(before_cursor_list, previous_line_list)
175 | let text_to_check_previous = s:last_two_words(previous_line_list, previous_previous_line_list)
176 |
177 | if s:no_error_in(text_to_check)
178 | \ &&
179 | \ (
180 | \ (top_of_window && cursor_can_move_vertically)
181 | \ ||
182 | \ s:no_error_in(text_to_check_previous)
183 | \ )
184 | " There's no spelling mistake!
185 | return 1
186 | endif
187 |
188 | return 0
189 | endfunction
190 |
191 | " Return a string containing the last two words in the buffer content
192 | " described by previous_line_list and line_list, or the empty string if
193 | " line_list is empty
194 | function! s:last_two_words(line_list, previous_line_list)
195 | if len(a:line_list) > 1
196 | return a:line_list[-2] .. ' ' .. a:line_list[-1]
197 | elseif len(a:line_list) == 1
198 | if !empty(a:previous_line_list)
199 | return a:previous_line_list[-1] .. ' ' .. a:line_list[0]
200 | else
201 | return a:line_list[0]
202 | endif
203 | else
204 | return ""
205 | endif
206 | endfunction
207 |
208 | " Little helper for checking if there's a spelling error in a string
209 | function! s:no_error_in(the_string) abort
210 | " spellbadword() returns a list containing two items. If the first item in
211 | " the list is the empty string, then there was no spelling error.
212 | return empty(spellbadword(a:the_string)[0])
213 | endfunction
214 |
215 | " Returns true if pos1 is earlier in the buffer than pos2
216 | function! s:pos_before(pos1, pos2) abort
217 | return a:pos1[1] < a:pos2[1]
218 | \ || a:pos1[1] == a:pos2[1] && a:pos1[2] < a:pos2[2]
219 | endfunction
220 |
221 | function! s:pos_same(pos1, pos2) abort
222 | return a:pos1[1] == a:pos2[1] && a:pos1[2] == a:pos2[2]
223 | endfunction
224 |
225 | " Returns whether or not it changed pos
226 | " N.B. Don't really care what happens to cursor if it's between the
227 | " end before and the end after the change. There's no obvious
228 | " "right" answer. Therefore arbitrarily selecting the "before"
229 | " end. Could also have used the "after" or the max or the min.
230 | "
231 | function! s:update_position(pos, correction_pos, length_before_change, adjustment)
232 | if a:adjustment != 0
233 | \ && a:pos[1] == a:correction_pos[1]
234 | \ && a:pos[2] > a:correction_pos[2] + a:length_before_change
235 | let a:pos[2] = a:pos[2] + a:adjustment
236 | return 1
237 | endif
238 |
239 | return 0
240 | endfunction
241 |
242 |
243 | function! s:correct_error(spell_pos, edit_pos, index)
244 | " Not sure why I originally decided to use window variables and not buffer
245 | " variables, but it makes sense for the things that are window-local
246 | " (matches, 'spell') and works quite well.
247 | "
248 | " Save current spell_pos and edit_pos so I can jump back and re-run this
249 | " function to pick different corrections with Nz=
250 | let w:vim_you_autocorrect_last_pos = copy(a:spell_pos)
251 | let w:vim_you_autocorrect_last_edit_pos = copy(a:edit_pos)
252 |
253 | " Correct the error.
254 | let old_line = getline('.')
255 | execute 'keepjumps normal!' a:index . 'z='
256 | let new_line = getline('.')
257 |
258 | let position_adjustment = 0
259 |
260 | " Start and end of the misspelled word
261 | let start_index = a:spell_pos[2] - 1
262 | let end_index = a:edit_pos[2] - 3
263 |
264 | if a:edit_pos[1] == a:spell_pos[1]
265 | " Adjust cursor position if the replacement is a different length
266 | " and is on same line as us.
267 | let position_adjustment = strlen(new_line) - strlen(old_line)
268 |
269 | " Save the original and corrected spellings of the most recent
270 | " autocorrection so we can revert it.
271 | "
272 | " Problem occurs when correction "include[s] other text". Need to include
273 | " this other text in our saved before/after. e.g. when "anotherr test" is
274 | " replaced by "another retest", we need to include the space in the before and
275 | " the "e" in the after.
276 | "
277 | " Check for differences in the lines after the current end_index, and
278 | " extend the index if any are found. I don't know how far we have to go,
279 | " so far the only examples I've found include a single extra space, but
280 | " arbitrarily doing it for 10 more bytes.
281 | for i in range(end_index + 1, end_index + 10)
282 | if old_line[i] != new_line[i + position_adjustment]
283 | let end_index = i
284 | endif
285 | endfor
286 | let w:vim_you_autocorrect_before_correction = old_line[start_index:end_index]
287 | let w:vim_you_autocorrect_after_correction = new_line[start_index:end_index + position_adjustment]
288 | elseif a:edit_pos[1] == a:spell_pos[1] + 1
289 | " FIXME: Is it possible that the spelling error isn't at the end of
290 | " the line? How?
291 | let w:vim_you_autocorrect_before_correction = old_line[start_index:]
292 | let w:vim_you_autocorrect_after_correction = new_line[start_index:]
293 | else
294 | " FIXME: The spelling error isn't on this line or at the end of the
295 | " previous line. How did this happen?
296 | unlet w:vim_you_autocorrect_before_correction
297 | unlet w:vim_you_autocorrect_after_correction
298 | unlet w:vim_you_autocorrect_last_pos
299 | endif
300 | call s:highlight_correction(a:spell_pos)
301 |
302 | return position_adjustment
303 | endfunction
304 |
305 | " ****************
306 | " * *
307 | " * Highlighting *
308 | " * *
309 | " ****************
310 |
311 | function! s:highlight_correction(spell_pos)
312 | " Clear any existing highlight (and timer)
313 | call s:clear_highlight()
314 |
315 | if get(g:, 'vim_you_autocorrect_disable_highlighting', 0)
316 | return
317 | endif
318 |
319 | " Highlight
320 | if exists('w:vim_you_autocorrect_after_correction')
321 | let s:match_id = matchaddpos('AutocorrectGood',
322 | \ [[a:spell_pos[1],
323 | \ a:spell_pos[2],
324 | \ len(w:vim_you_autocorrect_after_correction)]])
325 | if has('timers')
326 | let s:timer_id = timer_start(10000, {timer_id -> s:clear_highlight()})
327 | endif
328 | let s:win_id = win_getid(winnr())
329 | endif
330 | endfunction
331 |
332 | " Clear the match of the autocorrected word
333 | function! s:clear_highlight()
334 | " Cancel any existing timer
335 | if exists('s:timer_id')
336 | call timer_stop(s:timer_id)
337 | endif
338 |
339 | " Clear the highlight
340 | if exists('s:match_id')
341 | let winnr = winnr()
342 | let tabpagenr = tabpagenr()
343 | let highlight_tabwin = win_id2tabwin(s:win_id)
344 | if highlight_tabwin != [0, 0]
345 | execute highlight_tabwin[0] . 'tabdo' highlight_tabwin[1] . 'windo call matchdelete(' . s:match_id . ')'
346 | execute tabpagenr . 'tabnext'
347 | execute winnr . 'wincmd w'
348 | endif
349 | unlet s:match_id
350 | endif
351 | endfunction
352 |
353 | " *************************
354 | " * *
355 | " * Enable/Disable Plugin *
356 | " * *
357 | " *************************
358 |
359 | function! vim_you_autocorrect#enable_autocorrect() abort
360 | " Save 'spell'
361 | " FIXME: 'spell' is window local, but the autocommands are buffer local.
362 | if !&spell
363 | " We'll need to unset spell when we disable the plugin
364 | let w:vim_you_autocorrect_reset_spell = 1
365 | setlocal spell
366 | endif
367 |
368 | silent! call remove_autocommands()
369 | augroup vim_you_autocorrect
370 | autocmd InsertEnter call reset_start_pos()
371 | autocmd CursorMovedI call autocorrect()
372 | if !has('timers')
373 | autocmd CursorHold call clear_highlight()
374 | autocmd CursorHoldI call clear_highlight()
375 | endif
376 | augroup END
377 |
378 | highlight link AutocorrectGood SpellBad
379 | endfunction
380 |
381 | function! vim_you_autocorrect#disable_autocorrect() abort
382 | " We don't really want to report errors to the user if the attempt to disable
383 | " when it's already disabled: use `silent!`
384 | silent! call remove_autocommands()
385 |
386 | " Unset spell if we set it
387 | if exists('w:vim_you_autocorrect_reset_spell')
388 | unlet w:vim_you_autocorrect_reset_spell
389 | setlocal nospell
390 | endif
391 | endfunction
392 |
393 | function! s:reset_start_pos() abort
394 | let s:start_pos = getpos('.')
395 | endfunction
396 |
397 | function! s:remove_autocommands() abort
398 | autocmd! vim_you_autocorrect InsertEnter,CursorMovedI
399 | endfunction
400 |
401 | " *************
402 | " * *
403 | " * Undo Last *
404 | " * *
405 | " *************
406 |
407 | function! vim_you_autocorrect#undo_last() abort
408 | let length_before_change = len(w:vim_you_autocorrect_after_correction)
409 | let adjustment = s:undo_last()
410 |
411 | " Adjust the cursor position to account for changes in length.
412 | "
413 | " N.B. We're adjusting the position of the cursor correctly here, but
414 | " marks on the line won't move. In particular, the `` mark isn't
415 | " moved correctly, so you can't jump back to the correct position
416 | " in e.g. a mapping.
417 | let edit_pos = getpos('.')
418 | if s:update_position(edit_pos, w:vim_you_autocorrect_last_pos, length_before_change, adjustment)
419 | silent! call setpos('.', edit_pos)
420 | endif
421 |
422 | if exists('w:vim_you_autocorrect_last_pos')
423 | unlet w:vim_you_autocorrect_last_pos
424 | endif
425 | endfunction
426 |
427 | function! s:undo_last() abort
428 | let adjustment = 0
429 |
430 | if exists('w:vim_you_autocorrect_last_pos')
431 | let [corrected_line, sp, ep] = s:get_line_and_positions()
432 |
433 | " Only undo if the correction hasn't been changed subsequently
434 | if corrected_line[sp:ep - 1] ==# w:vim_you_autocorrect_after_correction
435 | let edit_pos = getpos('.')
436 |
437 | if sp > 0
438 | let line_before = corrected_line[:sp - 1]
439 | else
440 | let line_before = ''
441 | endif
442 | let line_after = corrected_line[ep:]
443 |
444 | call setline(w:vim_you_autocorrect_last_pos[1],
445 | \ line_before .
446 | \ w:vim_you_autocorrect_before_correction .
447 | \ line_after)
448 |
449 | let adjustment = strlen(w:vim_you_autocorrect_before_correction) -
450 | \ strlen(w:vim_you_autocorrect_after_correction)
451 |
452 | call s:clear_highlight()
453 | endif
454 | endif
455 |
456 | return adjustment
457 | endfunction
458 |
459 | " ****************
460 | " * *
461 | " * Jump to Last *
462 | " * *
463 | " ****************
464 |
465 | function! vim_you_autocorrect#jump_to_last() abort
466 | call s:jump_to_last(0)
467 | endfunction
468 |
469 | function! s:jump_to_last(force_jump) abort
470 | if exists('w:vim_you_autocorrect_last_pos')
471 | let [corrected_line, sp, ep] = s:get_line_and_positions()
472 |
473 | " Only move if the correction hasn't been changed subsequently
474 | if a:force_jump || corrected_line[sp:ep - 1] ==# w:vim_you_autocorrect_after_correction
475 | " Add current position to the jumplist
476 | normal! m'
477 |
478 | " And jump
479 | silent! call setpos('.', w:vim_you_autocorrect_last_pos)
480 | endif
481 | endif
482 | endfunction
483 |
484 | " This gets the line, and the start and end positions of the word that was
485 | " substituted in when making the correction.
486 | function! s:get_line_and_positions() abort
487 | let corrected_line = getline(w:vim_you_autocorrect_last_pos[1])
488 | let sp = w:vim_you_autocorrect_last_pos[2] - 1
489 | let ep = sp + strlen(w:vim_you_autocorrect_after_correction)
490 |
491 | return [corrected_line, sp, ep]
492 | endfunction
493 |
494 | " ****************************
495 | " * *
496 | " * Next/Previous Correction *
497 | " * *
498 | " ****************************
499 |
500 | function! vim_you_autocorrect#next() abort
501 | call s:bump_correction(1)
502 | endfunction
503 |
504 | function! vim_you_autocorrect#previous() abort
505 | call s:bump_correction(-1)
506 | endfunction
507 |
508 | function! s:bump_correction(direction) abort
509 | let edit_pos = getpos('.')
510 | if exists('w:vim_you_autocorrect_last_pos')
511 | try
512 | " Undo the correction
513 | let length_before_change = len(w:vim_you_autocorrect_after_correction)
514 | let adjustment = s:undo_last()
515 |
516 | " Update edit_pos and the cursor
517 | if s:update_position(edit_pos, w:vim_you_autocorrect_last_pos, length_before_change, adjustment)
518 | silent! call setpos('.', edit_pos)
519 | endif
520 |
521 | " Jump back to the error
522 | call s:jump_to_last(1)
523 |
524 | let w:vim_you_autocorrect_correct_count += a:direction
525 | if w:vim_you_autocorrect_correct_count < 1
526 | let w:vim_you_autocorrect_correct_count = 1
527 | endif
528 |
529 | let adjustment = s:correct_error(w:vim_you_autocorrect_last_pos,
530 | \ w:vim_you_autocorrect_last_edit_pos,
531 | \ w:vim_you_autocorrect_correct_count)
532 | call s:update_position(edit_pos, w:vim_you_autocorrect_last_pos, len(w:vim_you_autocorrect_before_correction), adjustment)
533 | finally
534 | " Reset the cursor position.
535 | silent! call setpos('.', edit_pos)
536 | endtry
537 | endif
538 | endfunction
539 |
540 | " Restore user's cpoptions setting
541 | let &cpoptions = s:save_cpo
542 | unlet s:save_cpo
543 |
--------------------------------------------------------------------------------
/doc/vim-you-autocorrect.txt:
--------------------------------------------------------------------------------
1 | *vim-you-autocorrect.txt* Why should smartphones get all the fun?
2 | *autocorrect* *vim-you-autocorrect*
3 |
4 | Author: Rich Cheng
5 | Homepage: http://github.com/sedm0784/vim-you-autocorrect
6 | Copyright: © 2018–2021 Rich Cheng
7 | Licence: Vim You, Autocorrect! uses the same licence as Vim. (See
8 | |license|.)
9 | Version: 1.1.5
10 |
11 | ==============================================================================
12 | _ _ _ _ ___ _ ~
13 | \ \ / | | | |\/| \ \_/ / / \ | | | __ ~
14 | \_\/ |_| |_| | |_| \_\_/ \_\_/ /_/) ~
15 | __ _ _____ ___ __ ___ ___ ___ ____ __ _____ __ ~
16 | / /\ | | | | | / / \ / /` / / \ | |_) | |_) | |_ / /` | | |_/ ~
17 | /_/--\ \_\_/ |_| \_\_/ \_\_, \_\_/ |_| \ |_| \ |_|__ \_\_, |_| (_) ~
18 |
19 | Why should smartphones get all the fun?
20 | ==============================================================================
21 | CONTENTS *autocorrect-contents*
22 |
23 | 1. Introduction ......................|autocorrect-introduction|
24 | 2. Usage .............................|autocorrect-usage|
25 | 2.1 Commands .....................|autocorrect-commands|
26 | 3. How Does It Work? .................|autocorrect-how-does-it-work|
27 | 4. Advanced Configuration.............|autocorrect-advanced-configuration|
28 | 4.1 Highlighting .................|autocorrect-highlighting|
29 | 4.2 Mappings .....................|autocorrect-mappings|
30 | 5. Changelog .........................|autocorrect-changelog|
31 | 6. Issues ............................|autocorrect-issues|
32 | 6.1 Known Issues .................|autocorrect-known-issues|
33 | 6.2 Reporting Issues .............|autocorrect-reporting-issues|
34 | 7. Credits ...........................|autocorrect-credits|
35 |
36 | ==============================================================================
37 | 1. Introduction *autocorrect-introduction*
38 |
39 | Vim You, Autocorrect! releases you from the DRUDGERY of having to correct your
40 | spelling mistakes and typos by automatically accepting Vim's suggestions for
41 | each misspelled word as you type.
42 |
43 | ==============================================================================
44 | 2. Usage *autocorrect-usage*
45 |
46 | Simply switch Vim You, Autocorrect! on by typing |:EnableAutocorrect|, and
47 | never have to worry about spelling errors again!
48 |
49 | ------------------------------------------------------------------------------
50 | 2.1 Commands *autocorrect-commands*
51 |
52 | *autocorrect-:EnableAutocorrect*
53 | :EnableAutocorrect
54 | This turns on Vim You, Autocorrect! for the current buffer. Most
55 | likely you will want to enable autocorrections globally by
56 | adding something like the following to your .vimrc file:
57 | >
58 | augroup ILoveCorrections
59 | autocmd!
60 | autocmd BufEnter * EnableAutocorrect
61 | augroup END
62 | <
63 | *autocorrect-:DisableAutocorrect*
64 | :DisableAutocorrect
65 | This turns Vim You, Autocorrect! off again. You will probably
66 | never want to do this I don't know why I implemented it.
67 |
68 | ==============================================================================
69 | 3. How Does It Work? *autocorrect-how-does-it-work*
70 |
71 | Vim You, Autocorrect! has a very sophisticated and subtle mechanism. The full
72 | details of how it works are almost impossible to explain, but essentially it
73 | does something like the following:
74 |
75 | 1. As you finish typing each word, Vim You, Autocorrect! issues a `[s`
76 | motion command,
77 | 2. If a spelling error is detected, Vim You, Autocorrect! issues a `1z=`
78 | command to accept the first spelling suggestion.
79 |
80 | ==============================================================================
81 | 4. Advanced Configuration *autocorrect-advanced-configuration*
82 |
83 | ------------------------------------------------------------------------------
84 | 4.1 Highlighting *autocorrect-highlighting*
85 |
86 | Vim You, Autocorrect! adds a new |highlight| group, which is used to highlight
87 | the most recent correction for a short period of time.
88 |
89 | *autocorrect-hl-AutocorrectGood*
90 | AutocorrectGood
91 | The most recently corrected word. By default, this simply
92 | links to your current |hl-SpellBad| highlight group (because
93 | otherwise, you might get sad because you never get to see that
94 | colour). If you want to define your own highlighting instead,
95 | add a line such as the following to your |vimrc|:
96 | >
97 | highlight AutocorrectGood ctermfg=Red guifg=Red gui=undercurl
98 | <
99 | If you set a |colorscheme| in your |vimrc|, ensure that you do so BEFORE
100 | setting your |AutocorrectGood| highlight: some colorschemes will clear
101 | existing highlighting when they are set. Alternatively, use a |ColorScheme|
102 | autocommand; this is the mechanism Vim provides for ensuring specified
103 | highlights are always respected.
104 |
105 | *'g:vim_you_autocorrect_disable_highlighting'*
106 | 'g:vim_you_autocorrect_disable_highlighting'
107 | boolean (default off)
108 | global
109 | To disable highlighting entirely, add the following option to
110 | your |vimrc|:
111 | >
112 | let g:vim_you_autocorrect_disable_highlighting = 1
113 | <
114 | ------------------------------------------------------------------------------
115 | 4.2 Mappings *autocorrect-mappings*
116 |
117 | Version 1.0 of Vim You, Autocorrect! ensures that everything you type is
118 | spelled CORRECTLY. However, subsequent to its release, I have been informed
119 | that some users occasionally want to include words that are spelled
120 | INCORRECTLY or LESS correctly in the things they write. Why do they want
121 | this? It is a mystery to modern science.
122 |
123 | Nevertheless, I am nothing if not ACCOMMODATING: I have prepared a number of
124 | features to facilitate this unusual request. Vim You, Autocorrect! does not
125 | add any mappings by default, that would be RUDE, but it provides a number of
126 | internal mappings you can map to in your |vimrc|. (See |using-|.)
127 |
128 | *autocorrect-undo*
129 | VimyouautocorrectUndo
130 | Undo the most recent correction, returning the word to its
131 | originally typed (incorrect) spelling. e.g. Add this mapping
132 | to your |vimrc| to invoke this feature by typing ||u
133 | in normal mode:
134 | >
135 | nmap u VimyouautocorrectUndo
136 | <
137 | Or add this mapping to undo corrections by pressing
138 | in insert mode:
139 | >
140 | imap VimyouautocorrectUndo
141 | <
142 | *autocorrect-jump*
143 | VimyouautocorrectJump
144 | Position cursor at the start of the most recent
145 | correction. e.g. To override the default behaviour of |[s|
146 | (Because, hey, you're not using that now anyway, are you?) and
147 | use it instead to jump back to the last correction,
148 | add the following mapping to your |vimrc|:
149 | >
150 | nmap [s VimyouautocorrectJump
151 | <
152 | Or to jump back and open Vim's regular interface for selecting
153 | a spelling correction by typing |z=| (You're not using
154 | that any more, either, right?) try this mapping:
155 | >
156 | nmap z= VimyouautocorrectJumpVimyouautocorrectUndo:call feedkeys('z=', 'n')
157 | <
158 | *autocorrect-next*
159 | VimyouautocorrectNext
160 | For the most recent correction, select the next of Vim's
161 | suggested corrections.
162 |
163 | *autocorrect-previous*
164 | VimyouautocorrectPrevious
165 | For the most recent correction, select the previous of Vim's
166 | suggested corrections.
167 |
168 | These commands allow you to step through Vim's list of spelling suggestions.
169 | e.g. to set up |]s| and |[s| to iterate forwards and backwards through
170 | Vim's list of suggestions, use the following normal mode mappings:
171 | >
172 | nmap ]s VimyouautocorrectNext
173 | nmap [s VimyouautocorrectPrevious
174 | <
175 | Or if you don't want to exit insert mode, try these mappings:
176 | >
177 | imap VimyouautocorrectPrevious
178 | imap VimyouautocorrectNext
179 | <
180 | Wait, I thought of a reason you might want to do this! Maybe you are QUOTING
181 | text from elsewhere, and you need to preserve the INCORRECT spelling rather
182 | than MISQUOTE the source. Perhaps a future version of Vim You, Autocorrect!
183 | will add a feature to append [sic] to the text whenever you invoke the
184 | VimyouautocorrectUndo mapping.
185 |
186 | ==============================================================================
187 | 5. Changelog *autocorrect-changelog*
188 |
189 | Version 1.1.5 - Correctly correct capitalisation at the start of a sentence.
190 | https://github.com/sedm0784/vim-you-autocorrect/issues/7
191 | Version 1.1.4 - Minor documentation tweaks/fixes. No code changes.
192 | Version 1.1.3 - Fix corrections at end of line at top of file when |scrolloff|
193 | is set.
194 | Version 1.1.2 - Boring technical stuff. No real changes unless you care about
195 | global namespace POLLUTION.
196 | Version 1.1.1 - Fix MYSTERIOUS stuttering issue reported by users.
197 | https://github.com/sedm0784/vim-you-autocorrect/issues/5
198 | Version 1.1.0 - Add features to allow incorrect and less correct words to be
199 | entered.
200 | Version 1.0.1 - Use `1z=` instead of `z=1` . Minor updates to :help.
201 | Version 1.0.0 - Vim You, Autocorrect! released
202 |
203 | ==============================================================================
204 | 6. Issues *autocorrect-issues*
205 |
206 | ------------------------------------------------------------------------------
207 | 6.1 Known Limitations *autocorrect-known-issues*
208 |
209 | Vim You, Autocorrect! is flawless, both in execution and more importantly in
210 | conception.
211 |
212 | ------------------------------------------------------------------------------
213 | 6.2 Reporting Issues *autocorrect-reporting-issues*
214 |
215 | If your issue is anything other than, “I'm struggling to cope with how
216 | remarkably SPECTACULAR Vim You, Autocorrect! is,” then it seems likely your
217 | problem is caused by user error, because Vim You, Autocorrect! is PERFECT.
218 | (See |autocorrect-known-issues|, above).
219 |
220 | Nevertheless, you can still contact me via the GitHub repository:
221 |
222 | https://github.com/sedm0784/vim-you-autocorrect
223 |
224 | Or if you prefer, feel free to email or tweet instead:
225 |
226 | vim dot you dot autocorrect at whileyouweregone dot co dot uk
227 | @sedm0784
228 |
229 | ==============================================================================
230 | 7. Credits *autocorrect-credits*
231 |
232 | Vim You, Autocorrect! was written by Rich Cheng.
233 |
234 | It includes some code improvements suggested by Luc Hermitte (or Lac Hermit,
235 | if this plugin had its druthers), who kindly reviewed the code.
236 |
237 | The banner at the top of this help file was created using the “Broadway KB”
238 | FIGlet font at the Text ASCII Art Generator:
239 |
240 | http://patorjk.com/software/taag/
241 |
242 | ==============================================================================
243 | vim:tw=78:ts=8:ft=help:norl:
244 |
--------------------------------------------------------------------------------
/plugin/vim_you_autocorrect.vim:
--------------------------------------------------------------------------------
1 | " vim-you-autocorrect.vim - Vim You, autocorrect!
2 | " Author: Rich Cheng
3 | " Homepage: http://github.com/sedm0784/vim-you-autocorrect
4 | " Copyright: © 2018–2021 Rich Cheng
5 | " Licence: Vim You, Autocorrect! uses the Vim licence.
6 | " Version: 1.1.5
7 |
8 | " Set coptions so we can use line continuation
9 | let s:save_cpo = &cpoptions
10 | set cpoptions&vim
11 |
12 | if exists('g:loaded_vim_you_autocorrect')
13 | \ || &compatible
14 | \ || v:version < 700
15 | \ || !has('syntax')
16 | \ || !exists('&spell')
17 |
18 | " Restore user's cpoptions setting
19 | let &cpoptions = s:save_cpo
20 | unlet s:save_cpo
21 | finish
22 | endif
23 |
24 | let g:loaded_vim_you_autocorrect = 1
25 |
26 | command EnableAutocorrect call vim_you_autocorrect#enable_autocorrect()
27 | command DisableAutocorrect call vim_you_autocorrect#disable_autocorrect()
28 |
29 | nnoremap VimyouautocorrectUndo :call vim_you_autocorrect#undo_last()
30 | nnoremap VimyouautocorrectJump :call vim_you_autocorrect#jump_to_last()
31 | nnoremap VimyouautocorrectNext :call vim_you_autocorrect#next()
32 | nnoremap VimyouautocorrectPrevious :call vim_you_autocorrect#previous()
33 |
34 | " Restore user's cpoptions setting
35 | let &cpoptions = s:save_cpo
36 | unlet s:save_cpo
37 |
--------------------------------------------------------------------------------
/trailer/vim-you-autocorrect.cast:
--------------------------------------------------------------------------------
1 | {"version": 2, "width": 92, "height": 23, "timestamp": 1522934096, "idle_time_limit": 0.2, "env": {"SHELL": "/usr/local/bin/fish", "TERM": "screen-256color"}}
2 | [0.324682, "o", "\u001b[?1049h\u001b[?1h\u001b="]
3 | [0.349743, "o", "\u001b[1;23r\u001b[34l\u001b[34h\u001b[?25h\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H"]
4 | [0.388331, "o", "\u001b[?25l\u001b[1;1H \u001b[2;1H\u001b[1m\u001b[38;5;242m~ \u001b[3;1H~ \u001b[4;1H~ \u001b[5;1H~ \u001b[6;1H~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ "]
5 | [0.389039, "o", " \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ \u001b[15;1H~ \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ "]
6 | [0.389566, "o", " \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H \u001b[6;38HVIM - Vi IMproved\u001b[8;39Hversion 7.4.2196\u001b[9;35Hby Bram Moolenaar et al.\u001b[10;25HVim is open source and freely distributable\u001b[12;32HHelp poor children in Uganda!\u001b[13;24Htype :help iccf\u001b[1m\u001b[38;5;242m\u001b[48;5;0m\u001b[m\u001b[38;5;250m\u001b[48;5;235m for information \u001b[15;24Htype :q\u001b[1m\u001b[38;5;242m\u001b[48;5;0m\u001b[m\u001b[38;5;250m\u001b[48;5;235m to exit \u001b[16;24Htype :help\u001b[1m\u001b[38;5;242m\u001b[48;5;0m\u001b[m\u001b[38;5;250m\u001b[48;5;235m or \u001b[1m\u001b[38;5;242m\u001b[48;5;0m\u001b[m\u001b[38;5;250m\u001b[48;5;235m for on-line help\u001b[17;24Htype :help macvim\u001b[1m\u001b[38;5;242m\u001b[48;5;0m\u001b[m\u001b[38;5;250m\u001b[48;5;235m for MacVim help \u001b[1;1H\u001b[34h\u001b[?25h"]
7 | [1.899809, "o", "\u001b[?25l\u001b[6;38H\u001b[1m\u001b[38;5;242m \u001b[8;39H \u001b[9;35H \u001b[10;25H \u001b[12;32H \u001b[13;24H \u001b[15;24H \u001b[16;24H \u001b[17;24H \u001b[1;1H\u001b[34h\u001b[?25h"]
8 | [2.089808, "o", "\u001b[?25l\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;82H:\u001b[1;1H\u001b[23;82H \r:"]
9 | [2.090067, "o", "\u001b[34h\u001b[?25h"]
10 | [2.507952, "o", "E\u001b[?25l\u001b[34h\u001b[?25h"]
11 | [2.970754, "o", "n\u001b[?25l\u001b[34h\u001b[?25h"]
12 | [3.13883, "o", "a\u001b[?25l\u001b[34h\u001b[?25h"]
13 | [3.273182, "o", "b"]
14 | [3.273268, "o", "\u001b[?25l\u001b[34h\u001b[?25h"]
15 | [3.353108, "o", "l\u001b[?25l\u001b[34h\u001b[?25h"]
16 | [3.482496, "o", "e\u001b[?25l\u001b[34h\u001b[?25h"]
17 | [4.342133, "o", "A\u001b[?25l\u001b[34h\u001b[?25h"]
18 | [4.465696, "o", "u\u001b[?25l\u001b[34h\u001b[?25h"]
19 | [4.64274, "o", "t\u001b[?25l\u001b[34h\u001b[?25h"]
20 | [4.737694, "o", "o"]
21 | [4.737895, "o", "\u001b[?25l\u001b[34h\u001b[?25h"]
22 | [5.13265, "o", "c\u001b[?25l\u001b[34h\u001b[?25h"]
23 | [5.219065, "o", "o\u001b[?25l\u001b[34h\u001b[?25h"]
24 | [5.667588, "o", "r\u001b[?25l\u001b[34h\u001b[?25h"]
25 | [5.755077, "o", "r\u001b[?25l\u001b[34h\u001b[?25h"]
26 | [6.001891, "o", "e"]
27 | [6.002004, "o", "\u001b[?25l\u001b[34h\u001b[?25h"]
28 | [6.186221, "o", "c"]
29 | [6.18631, "o", "\u001b[?25l\u001b[34h\u001b[?25h"]
30 | [6.435029, "o", "t\u001b[?25l\u001b[34h\u001b[?25h"]
31 | [8.132758, "o", "\r"]
32 | [8.134592, "o", "\u001b[?25l\u001b[1;1H"]
33 | [8.134757, "o", "\u001b[34h\u001b[?25h"]
34 | [9.126934, "o", "\u001b[?25l\u001b[23;82Hi\u001b[1;1H"]
35 | [9.127155, "o", "\u001b[23;82H \u001b[1;1H"]
36 | [9.127202, "o", "\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001bPtmux;\u001b\u001b[5 q\u001b\\"]
37 | [9.127337, "o", "\u001b[1;1H\u001b[34h\u001b[?25h"]
38 | [9.381146, "o", "\u001b[?25lV\u001b[34h\u001b[?25h"]
39 | [9.547283, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
40 | [9.752355, "o", "\u001b[?25lm\u001b[34h\u001b[?25h"]
41 | [9.865466, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
42 | [10.685721, "o", "\u001b[?25lY\u001b[34h\u001b[?25h"]
43 | [10.783888, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
44 | [10.819809, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
45 | [11.51018, "o", ",\b\u001b[?25l\u001b[23;82H,\u001b[1;8H\u001b[34h\u001b[?25h"]
46 | [11.532526, "o", "\u001b[?25l\u001b[23;82H \u001b[1;8H \b, \u001b[34h\u001b[?25h"]
47 | [11.722838, "o", "\u001b[?25lA\u001b[34h\u001b[?25h"]
48 | [11.884319, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
49 | [12.027898, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
50 | [12.100678, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
51 | [12.315289, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
52 | [12.43479, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
53 | [12.555771, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
54 | [12.691639, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
55 | [12.814753, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
56 | [12.947251, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
57 | [13.171267, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
58 | [13.766738, "o", "\u001b[?25l\u001b[1;10H\u001b[4mAutocorrect\u001b[24m\u001b[38;5;250m\u001b[48;5;235m!\u001b[23;1HChange \"Autocorrect\" to:\r\r\n \u001b[23;2H1 \"Auto correct\"\r\r\n \u001b[23;2H2 \"Alto correct\"\r\r\n \u001b[23;2H3 \"Auto corrects\"\r\r\n \u001b[23;2H4 \"Au to correct\"\r\r\n \u001b[23;2H5 \"Autocorrelate\"\r\r\n \u001b[23;2H6 \"Arte correct\"\r\r\n \u001b[23;2H7 \"Audi correct\"\r\r\n \u001b[23;2H8 \"Otto c"]
59 | [13.766823, "o", "orrect\"\r\r\n \u001b[23;2H9 \"Ado correct\"\r\r\n \u001b[23;1H10 \"Ate correct\"\r\r\n \u001b[23;1H11 \"Ito correct\"\r\r\n \u001b[23;1H12 \"Ute correct\"\r\r\n \u001b[23;1H13 \"Audio correct\"\r\r\n \u001b[23;1H14 \"Auto correcter\"\r\r\n \u001b[23;1H15 \"Auto corrector\"\r\r\n \u001b[23;1H16 \"Au too correct\"\r\r\n "]
60 | [13.767388, "o", " \u001b[23;1H17 \"Auto correct\" < \"Autocorrect!\"\r\r\n \u001b[23;1H18 \"Duo correct\"\r\r\n \u001b[23;1H19 \"To correct\"\r\r\n \u001b[23;1H20 \"Aero correct\"\r\r\n \u001b[23;1H21 \"Ammo correct\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! \u001b[2;1H\u001b[1m\u001b[38;5;242m~ \u001b[3;1H~ "]
61 | [13.767702, "o", " \u001b[4;1H~ \u001b[5;1H~ \u001b[6;1H~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ "]
62 | [13.767929, "o", " \u001b[15;1H~ \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m "]
63 | [13.768179, "o", " \u001b[1;23H\u001b[34h\u001b[?25h"]
64 | [14.767895, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
65 | [15.811812, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
66 | [15.915552, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
67 | [16.066317, "o", "\u001b[?25l\b\b\u001b[4mis\u001b[24m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1HChange \"is\" to:\r\r\n \u001b[23;2H1 \"Is\"\r\r\n \u001b[23;2H2 \"As\"\r\r\n \u001b[23;2H3 \"Es\"\r\r\n \u001b[23;2H4 \"Us\"\r\r\n \u001b[23;2H5 \"Si\"\r\r\n \u001b[23;2H6 \"I's\"\r\r\n \u001b[23;2H7 \"Cs\"\r\r\n \u001b[23;2H8 \"Id\"\r\r\n \u001b[23"]
68 | [16.066378, "o", ";2H9 \"If\"\r\r\n \u001b[23;1H10 \"In\"\r\r\n \u001b[23;1H11 \"It\"\r\r\n \u001b[23;1H12 \"Iv\"\r\r\n \u001b[23;1H13 \"Ls\"\r\r\n \u001b[23;1H14 \"Ms\"\r\r\n \u001b[23;1H15 \"Ii\"\r\r\n \u001b[23;1H16 \"Ix\"\r\r\n \u001b[23;1H17 \"Bis\"\r\r\n \u001b[23;1H18 \"Dis\"\r\r\n "]
69 | [16.066721, "o", " \u001b[23;1H19 \"Fis\"\r\r\n \u001b[23;1H20 \"His\"\r\r\n \u001b[23;1H21 \"Sis\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is \u001b[2;1H\u001b[1m\u001b[38;5;242m~ \u001b[3;1H~ \u001b[4;1H~ \u001b[5;1H~ \u001b[6;1H~ "]
70 | [16.067031, "o", " \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ \u001b[15;1H~ \u001b[16;1H~ "]
71 | [16.067341, "o", " \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[1;27H\u001b[34h\u001b[?25h"]
72 | [16.179415, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
73 | [16.2595, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
74 | [17.142586, "o", "\u001b[?25lp\u001b[34h\u001b[?25h"]
75 | [17.144554, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
76 | [17.36456, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
77 | [18.064124, "o", "\u001b[?25lg\u001b[34h\u001b[?25h"]
78 | [18.065227, "o", "\u001b[?25lin\u001b[34h\u001b[?25h"]
79 | [18.936925, "o", "\u001b[?25l\b\b\b\b\b\b\u001b[4mplugin\u001b[24m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1HChange \"plugin\" to:\r\r\n \u001b[23;2H1 \"plug-in\"\r\r\n \u001b[23;2H2 \"plug in\"\r\r\n \u001b[23;2H3 \"plugging\"\r\r\n \u001b[23;2H4 \"plug's\"\r\r\n \u001b[23;2H5 \"puling\"\r\r\n \u001b[23;2H6 \"plugs\"\r\r\n \u001b[23;2H7 \"login\"\r\r\n \u001b[23;2H8 \"pidgin\"\r\r\n "]
80 | [18.937001, "o", " \u001b[23;2H9 \"plain\"\r\r\n \u001b[23;1H10 \"plug\"\r\r\n \u001b[23;1H11 \"plunging\"\r\r\n \u001b[23;1H12 \"plying\"\r\r\n \u001b[23;1H13 \"lupin\"\r\r\n \u001b[23;1H14 \"Elgin\"\r\r\n \u001b[23;1H15 \"plug inn\"\r\r\n \u001b[23;1H16 \"plug an\"\r\r\n \u001b[23;1H17 \"plug on\"\r\r\n "]
81 | [18.937464, "o", " \u001b[23;1H18 \"cluing\"\r\r\n \u001b[23;1H19 \"gluing\"\r\r\n \u001b[23;1H20 \"plugging\" < \"plugin \"\r\r\n \u001b[23;1H21 \"bluing\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in \u001b[2;1H\u001b[1m\u001b[38;5;242m~ \u001b[3;1H~ \u001b[4;1H~ \u001b[5;1H~ "]
82 | [18.937719, "o", " \u001b[6;1H~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ \u001b[15;1H~ "]
83 | [18.938107, "o", " \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[1;37H\u001b[34h\u001b[?25h"]
84 | [19.12285, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
85 | [19.212164, "o", "\u001b[?25lh\u001b[34h\u001b[?25h"]
86 | [19.278718, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
87 | [19.308531, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
88 | [19.529669, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
89 | [20.753943, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
90 | [20.757607, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
91 | [20.904769, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
92 | [21.075084, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
93 | [21.291649, "o", "\u001b[?25lm\u001b[34h\u001b[?25h"]
94 | [21.428173, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
95 | [21.766688, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
96 | [21.877589, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
97 | [22.462701, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
98 | [22.502263, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
99 | [22.732642, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
100 | [22.82106, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
101 | [23.383943, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
102 | [23.523318, "o", "\u001b[?25l\u001b[1;42H\u001b[4mautomaticcaly\u001b[24m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1HChange \"automaticcaly\" to:\r\r\n \u001b[23;2H1 \"automatically\"\r\r\n \u001b[23;2H2 \"automatic cay\"\r\r\n \u001b[23;2H3 \"automatic ally\"\r\r\n \u001b[23;2H4 \"automatic call\"\r\r\n \u001b[23;2H5 \"automatic clay\"\r\r\n \u001b[23;2H6 \"automatic lacy\"\r\r\n \u001b[23;2H7 \"automatically\" < \"automaticcaly \"\r\r\n "]
103 | [23.523381, "o", " \u001b[23;2H8 \"automatic calf\"\r\r\n \u001b[23;2H9 \"automatic calm\"\r\r\n \u001b[23;1H10 \"automatic calyx\"\r\r\n \u001b[23;1H11 \"automatic scaly\"\r\r\n \u001b[23;1H12 \"automatic all\"\r\r\n \u001b[23;1H13 \"automatic any\"\r\r\n \u001b[23;1H14 \"aromatically\"\r\r\n \u001b[23;1H15 \"automatic lay\"\r\r\n \u001b[23;1H16 \"automatic Daly\"\r\r\n "]
104 | [23.523726, "o", " \u001b[23;1H17 \"automata scaly\"\r\r\n \u001b[23;1H18 \"automate scaly\"\r\r\n \u001b[23;1H19 \"automatic illy\"\r\r\n \u001b[23;1H20 \"automatic oily\"\r\r\n \u001b[23;1H21 \"automatic ale\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically \u001b[2;1H\u001b[1m\u001b[38;5;242m~ \u001b[3;1H~ "]
105 | [23.524091, "o", " \u001b[4;1H~ \u001b[5;1H~ \u001b[6;1H~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ "]
106 | [23.524409, "o", " \u001b[14;1H~ \u001b[15;1H~ \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m "]
107 | [23.524624, "o", " \u001b[1;56H\u001b[34h\u001b[?25h"]
108 | [24.20334, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
109 | [24.228038, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
110 | [24.419403, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
111 | [24.646809, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
112 | [24.692358, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
113 | [24.813461, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
114 | [25.076607, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
115 | [25.339536, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
116 | [25.549975, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
117 | [25.804402, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
118 | [25.931867, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
119 | [25.965104, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
120 | [26.037642, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
121 | [26.196587, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
122 | [27.180767, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
123 | [27.325233, "o", "\u001b[?25lp\u001b[34h\u001b[?25h"]
124 | [27.530051, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
125 | [27.65144, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
126 | [27.739449, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
127 | [27.908363, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
128 | [27.948511, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
129 | [28.020553, "o", "\u001b[?25lg\u001b[34h\u001b[?25h"]
130 | [28.776245, "o", "\u001b[?25l\u001b[1;70H\u001b[4mspeeling\u001b[24m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1HChange \"speeling\" to:\r\r\n \u001b[23;2H1 \"spelling\"\r\r\n \u001b[23;2H2 \"spieling\"\r\r\n \u001b[23;2H3 \"speeding\"\r\r\n \u001b[23;2H4 \"steeling\"\r\r\n \u001b[23;2H5 \"peeling\"\r\r\n \u001b[23;2H6 \"spilling\"\r\r\n \u001b[23;2H7 \"spoiling\"\r\r\n \u001b[23;2H8 \"sparling\"\r\r\n "]
131 | [28.776323, "o", " \u001b[23;2H9 \"spooling\"\r\r\n \u001b[23;1H10 \"smiling\"\r\r\n \u001b[23;1H11 \"spicing\"\r\r\n \u001b[23;1H12 \"spiking\"\r\r\n \u001b[23;1H13 \"spiting\"\r\r\n \u001b[23;1H14 \"spewing\"\r\r\n \u001b[23;1H15 \"piling\"\r\r\n \u001b[23;1H16 \"sailing\"\r\r\n \u001b[23;1H17 \"soiling\"\r\r\n "]
132 | [28.776922, "o", " \u001b[23;1H18 \"sleeping\"\r\r\n \u001b[23;1H19 \"seedling\"\r\r\n \u001b[23;1H20 \"smelling\"\r\r\n \u001b[23;1H21 \"speaking\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling \u001b[2;1H\u001b[1m\u001b[38;5;242m~ \u001b[3;1H~ \u001b[4;1H~ "]
133 | [28.777353, "o", " \u001b[5;1H~ \u001b[6;1H~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ \u001b[15;1H~ "]
134 | [28.777778, "o", " \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[1;79H\u001b[34h\u001b[?25h"]
135 | [29.012257, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
136 | [29.077305, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
137 | [29.16682, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
138 | [29.332261, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
139 | [29.412641, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
140 | [29.484645, "o", "\u001b[?25lk\u001b[34h\u001b[?25h"]
141 | [29.580264, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
142 | [29.724286, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
143 | [30.413144, "o", "\u001b[?25l\u001b[1;79H\u001b[4mnistakes\u001b[24m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1HChange \"nistakes\" to:\r\r\n \u001b[23;2H1 \"mistakes\"\r\r\n \u001b[23;2H2 \"Ni stakes\"\r\r\n \u001b[23;2H3 \"nee stakes\"\r\r\n \u001b[23;2H4 \"stakes\"\r\r\n \u001b[23;2H5 \"instates\"\r\r\n \u001b[23;2H6 \"mistake's\"\r\r\n \u001b[23;2H7 \"no stakes\"\r\r\n \u001b[23;2H8 \"intakes\"\r\r\n "]
144 | [30.413213, "o", " \u001b[23;2H9 \"nu stakes\"\r\r\n \u001b[23;1H10 \"né\u001b[23;8Hstakes\"\r\r\n \u001b[23;1H11 \"nigh stakes\"\r\r\n \u001b[23;1H12 \"mistaken\"\r\r\n \u001b[23;1H13 \"mistaker\"\r\r\n \u001b[23;1H14 \"mistake\"\r\r\n \u001b[23;1H15 \"in stakes\"\r\r\n \u001b[23;1H16 \"uni stakes\"\r\r\n \u001b[23;1H17 \"bi stakes\"\r\r\n "]
145 | [30.413663, "o", " \u001b[23;1H18 \"hi stakes\"\r\r\n \u001b[23;1H19 \"ii stakes\"\r\r\n \u001b[23;1H20 \"mi stakes\"\r\r\n \u001b[23;1H21 \"pi stakes\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes \u001b[2;1H\u001b[1m\u001b[38;5;242m~ \u001b[3;1H~ \u001b[4;1H~ "]
146 | [30.413917, "o", " \u001b[5;1H~ \u001b[6;1H~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ \u001b[15"]
147 | [30.414197, "o", ";1H~ \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m "]
148 | [30.414657, "o", "\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[1;88H\u001b[34h\u001b[?25h"]
149 | [30.502074, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
150 | [30.532074, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
151 | [30.61143, "o", "\u001b[?25ld\u001b[34h\u001b[?25h"]
152 | [30.740547, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
153 | [30.892346, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
154 | [31.057266, "o", "\u001b[?25ly\u001b[2;1H\u001b[34h\u001b[?25h"]
155 | [31.15702, "o", "\u001b[?25l\u001b[1;91H \u001b[2;1Htyp \u001b[2;4H\u001b[34h\u001b[?25h"]
156 | [31.222687, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
157 | [31.31789, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
158 | [31.532614, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
159 | [31.644554, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
160 | [31.721415, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
161 | [31.851617, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
162 | [32.005322, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
163 | [32.067488, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
164 | [32.109567, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
165 | [32.167984, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
166 | [33.681977, "o", "\u001b[?25l\u001b[34h\u001b[?25h"]
167 | [34.238963, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
168 | [34.293107, "o", "\u001b[?25lp\u001b[34h\u001b[?25h"]
169 | [34.582686, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
170 | [34.789086, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
171 | [35.354095, "o", "\u001b[?25l\b\b\b\b\u001b[4mtpye\u001b[24m\u001b[38;5;250m\u001b[48;5;235m.\u001b[23;1HChange \"tpye\" to:\r\r\n \u001b[23;2H1 \"type\"\r\r\n \u001b[23;2H2 \"try\"\r\r\n \u001b[23;2H3 \"typo\"\r\r\n \u001b[23;2H4 \"take\"\r\r\n \u001b[23;2H5 \"time\"\r\r\n \u001b[23;2H6 \"tree\"\r\r\n \u001b[23;2H7 \"eye\"\r\r\n \u001b[23;2H8 \"spy\"\r\r\n "]
172 | [35.354171, "o", " \u001b[23;2H9 \"dye\"\r\r\n \u001b[23;1H10 \"tape\"\r\r\n \u001b[23;1H11 \"tepee\"\r\r\n \u001b[23;1H12 \"hype\"\r\r\n \u001b[23;1H13 \"they\"\r\r\n \u001b[23;1H14 \"typed\"\r\r\n \u001b[23;1H15 \"types\"\r\r\n \u001b[23;1H16 \"the\"\r\r\n \u001b[23;1H17 \"apse\"\r\r\n "]
173 | [35.354556, "o", "\u001b[23;1H18 \"tyke\"\r\r\n \u001b[23;1H19 \"tyre\"\r\r\n \u001b[23;1H20 \"tale\"\r\r\n \u001b[23;1H21 \"tame\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H\u001b[1m\u001b[38;5;242m~ \u001b[4;1H~ \u001b[5;1H~ "]
174 | [35.354884, "o", " \u001b[6;1H~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ \u001b[15;1H~ "]
175 | [35.355164, "o", "\u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[2;19H\u001b[34h\u001b[?25h"]
176 | [36.489645, "o", "\u001b[?25l\u001b[23;1H \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
177 | [36.48974, "o", "33_SelectCompletion(0)\r"]
178 | [36.490004, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\ \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
179 | [36.490065, "o", "33_SelectCompletion(1)\r"]
180 | [36.491179, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\\u001b[3;1H "]
181 | [36.491524, "o", "\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[3;1H\u001b[34h\u001b[?25h"]
182 | [36.516551, "o", "\u001b[?25l\u001b[23;1H \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
183 | [36.516615, "o", "33_SelectCompletion(0)\r"]
184 | [36.516822, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\ \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\33_SelectCompletion(1)\r"]
185 | [36.51696, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\"]
186 | [36.517012, "o", "\u001b[4;1H "]
187 | [36.517743, "o", "\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[4;1H\u001b[34h\u001b[?25h"]
188 | [37.207313, "o", "\u001b[?25lI\u001b[34h\u001b[?25h"]
189 | [37.356847, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
190 | [37.460104, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
191 | [37.581507, "o", "\u001b[?25lp\u001b[34h\u001b[?25h"]
192 | [37.683582, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
193 | [37.869773, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
194 | [37.956395, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
195 | [38.0793, "o", "\u001b[?25ld\u001b[34h\u001b[?25h"]
196 | [38.299323, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
197 | [39.460282, "o", "\u001b[?25lb\u001b[34h\u001b[?25h"]
198 | [39.570937, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
199 | [39.708181, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
200 | [39.879635, "o", "\u001b[?25lm\u001b[34h\u001b[?25h"]
201 | [39.987175, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
202 | [40.054174, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
203 | [40.893851, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
204 | [40.975099, "o", "\u001b[?25lm\u001b[34h\u001b[?25h"]
205 | [41.06121, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
206 | [41.164272, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
207 | [41.276872, "o", "\u001b[?25lk\u001b[34h\u001b[?25h"]
208 | [41.491609, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
209 | [41.918072, "o", "\u001b[?25lp\u001b[34h\u001b[?25h"]
210 | [42.03574, "o", "\u001b[?25lh\u001b[34h\u001b[?25h"]
211 | [42.13941, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
212 | [42.180222, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
213 | [42.28364, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
214 | [42.443624, "o", "\u001b[?25l\u001b[4;16H\u001b[4msmarktphone\u001b[24m\u001b[38;5;250m\u001b[48;5;235m'\u001b[34h\u001b[?25h"]
215 | [42.515668, "o", "\u001b[?25l\u001b[4;16Hsmarktphone's\u001b[34h\u001b[?25h"]
216 | [42.742283, "o", "\u001b[?25l\u001b[4;16H\u001b[4msmarktphone's\u001b[24m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1HChange \"smarktphone's\" to:\r\r\n \u001b[23;2H1 \"smart phone's\"\r\r\n \u001b[23;2H2 \"smack phone's\"\r\r\n \u001b[23;2H3 \"smirk phone's\"\r\r\n \u001b[23;2H4 \"spark phone's\"\r\r\n \u001b[23;2H5 \"stark phone's\"\r\r\n \u001b[23;2H6 \"smacks phone's\"\r\r\n \u001b[23;2H7 \"smirks phone's\"\r\r\n \u001b[23;2H"]
217 | [42.74286, "o", "8 \"smart phones\"\r\r\n \u001b[23;2H9 \"mark phone's\"\r\r\n \u001b[23;1H10 \"market phone's\"\r\r\n \u001b[23;1H11 \"start phone's\"\r\r\n \u001b[23;1H12 \"sharks phone's\"\r\r\n \u001b[23;1H13 \"smarmy phone's\"\r\r\n \u001b[23;1H14 \"smarts phone's\"\r\r\n \u001b[23;1H15 \"smarty phone's\"\r\r\n \u001b[23;1H16 \"sparks phone's\"\r\r\n "]
218 | [42.742903, "o", " \u001b[23;1H17 \"sparky phone's\"\r\r\n \u001b[23;1H18 \"marks phone's\"\r\r\n \u001b[23;1H19 \"mart phone's\"\r\r\n \u001b[23;1H20 \"shark phone's\"\r\r\n \u001b[23;1H21 \"smart hone's\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H "]
219 | [42.743171, "o", " \u001b[4;1HInspired by my smart phone's \u001b[5;1H\u001b[1m\u001b[38;5;242m~ \u001b[6;1H~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[1"]
220 | [42.743491, "o", "4;1H~ \u001b[15;1H~ \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m "]
221 | [42.7437, "o", " \u001b[4;30H\u001b[34h\u001b[?25h"]
222 | [44.256135, "o", "\u001b[?25l\u001b[34h\u001b[?25h"]
223 | [44.478358, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
224 | [44.549789, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
225 | [44.675942, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
226 | [44.792337, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
227 | [44.980026, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
228 | [45.086417, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
229 | [45.200892, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
230 | [45.355212, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
231 | [45.459153, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
232 | [45.613166, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
233 | [45.843222, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
234 | [46.609849, "o", "\u001b[?25l\u001b[4;30H\u001b[4mautocorrect\u001b[24m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1HChange \"autocorrect\" to:\r\r\n \u001b[23;2H1 \"auto correct\"\r\r\n \u001b[23;2H2 \"alto correct\"\r\r\n \u001b[23;2H3 \"au to correct\"\r\r\n \u001b[23;2H4 \"auto corrects\"\r\r\n \u001b[23;2H5 \"ado correct\"\r\r\n \u001b[23;2H6 \"ate correct\"\r\r\n \u001b[23;2H7 \"autocorrelate\"\r\r\n \u001b[23;2H8 \"audio cor"]
235 | [46.609922, "o", "rect\"\r\r\n \u001b[23;2H9 \"to correct\"\r\r\n \u001b[23;1H10 \"au too correct\"\r\r\n \u001b[23;1H11 \"out correct\"\r\r\n \u001b[23;1H12 \"at correct\"\r\r\n \u001b[23;1H13 \"duo correct\"\r\r\n \u001b[23;1H14 \"auto correcter\"\r\r\n \u001b[23;1H15 \"auto corrector\"\r\r\n \u001b[23;1H16 \"aero correct\"\r\r\n "]
236 | [46.610325, "o", " \u001b[23;1H17 \"ammo correct\"\r\r\n \u001b[23;1H18 \"aura correct\"\r\r\n \u001b[23;1H19 \"cute correct\"\r\r\n \u001b[23;1H20 \"jato correct\"\r\r\n \u001b[23;1H21 \"judo correct\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H \u001b[4;1"]
237 | [46.610678, "o", "HInspired by my smart phone's auto correct \u001b[5;1H\u001b[1m\u001b[38;5;242m~ \u001b[6;1H~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ "]
238 | [46.610987, "o", " \u001b[15;1H~ \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m "]
239 | [46.61103, "o", "\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[4;43H\u001b[34h\u001b[?25h"]
240 | [46.763341, "o", "\u001b[?25lf\u001b[34h\u001b[?25h"]
241 | [46.956954, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
242 | [47.089137, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
243 | [47.187978, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
244 | [47.30001, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
245 | [47.383682, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
246 | [47.428011, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
247 | [48.636874, "o", ",\b\u001b[?25l\u001b[23;82H,\u001b[4;50H\u001b[34h\u001b[?25h"]
248 | [48.64132, "o", "\u001b[?25l\u001b[23;82H \u001b[4;50H \b"]
249 | [48.642937, "o", ", \u001b[34h\u001b[?25h"]
250 | [48.692813, "o", "\u001b[?25lI\u001b[34h\u001b[?25h"]
251 | [48.76396, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
252 | [48.980121, "o", "\u001b[?25lw\u001b[34h\u001b[?25h"]
253 | [49.22107, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
254 | [49.701631, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
255 | [49.706217, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
256 | [49.726225, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
257 | [49.828085, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
258 | [49.971808, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
259 | [50.059702, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
260 | [50.149145, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
261 | [50.520049, "o", "\u001b[?25lb\u001b[34h\u001b[?25h"]
262 | [50.540876, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
263 | [50.675707, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
264 | [50.774822, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
265 | [50.832874, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
266 | [50.972097, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
267 | [51.145538, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
268 | [51.228845, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
269 | [51.449392, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
270 | [51.532001, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
271 | [51.582055, "o", "\u001b[?25lm\u001b[34h\u001b[?25h"]
272 | [51.693781, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
273 | [51.851406, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
274 | [52.004355, "o", "\u001b[?25lm\u001b[34h\u001b[?25h"]
275 | [52.005783, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
276 | [52.124564, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
277 | [52.3249, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
278 | [53.452315, "o", "\u001b[?25l\u001b[4;71H\u001b[4msometmies\u001b[24m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1HChange \"sometmies\" to:\r\r\n \u001b[23;2H1 \"sometimes\"\r\r\n \u001b[23;2H2 \"sometime\"\r\r\n \u001b[23;2H3 \"some times\"\r\r\n \u001b[23;2H4 \"some tries\"\r\r\n \u001b[23;2H5 \"some ties\"\r\r\n \u001b[23;2H6 \"some mites\"\r\r\n \u001b[23;2H7 \"sometimes\" < \"sometmies \"\r\r\n \u001b[23;2H8 \"some tummies\"\r\r\n "]
279 | [53.45239, "o", " \u001b[23;2H9 \"same times\"\r\r\n \u001b[23;1H10 \"some dimes\"\r\r\n \u001b[23;1H11 \"some time's\"\r\r\n \u001b[23;1H12 \"some timers\"\r\r\n \u001b[23;1H13 \"sometime as\"\r\r\n \u001b[23;1H14 \"sometime is\"\r\r\n \u001b[23;1H15 \"sometime so\"\r\r\n \u001b[23;1H16 \"sometime us\"\r\r\n "]
280 | [53.452874, "o", " \u001b[23;1H17 \"some time\"\r\r\n \u001b[23;1H18 \"sodomies\"\r\r\n \u001b[23;1H19 \"some tames\"\r\r\n \u001b[23;1H20 \"some tomes\"\r\r\n \u001b[23;1H21 \"symmetries\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H \u001b[4;1HInspired by my smart phone's aut"]
281 | [53.453277, "o", "o correct feature, I wrote it because sometimes \u001b[5;1H\u001b[1m\u001b[38;5;242m~ \u001b[6;1H~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ "]
282 | [53.4539, "o", " \u001b[15;1H~ \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[4;81H\u001b[34h\u001b[?25h"]
283 | [54.615535, "o", "\u001b[?25lm\u001b[34h\u001b[?25h"]
284 | [54.617089, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
285 | [55.056975, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
286 | [55.349269, "o", "\u001b[?25lf\u001b[34h\u001b[?25h"]
287 | [55.44264, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
288 | [55.468116, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
289 | [55.545206, "o", "\u001b[?25lg\u001b[34h\u001b[?25h"]
290 | [55.661968, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
291 | [55.708784, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
292 | [55.852983, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
293 | [55.996579, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
294 | [56.561998, "o", "\u001b[?25ld\u001b[5;1H\u001b[34h\u001b[?25h"]
295 | [56.612624, "o", "\u001b[?25l\u001b[4;92H \u001b[5;1Hdo \u001b[5;3H\u001b[34h\u001b[?25h"]
296 | [56.694726, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
297 | [57.176123, "o", "\u001b[?25l'\u001b[34h\u001b[?25h"]
298 | [57.25653, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
299 | [57.389763, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
300 | [58.104281, "o", "\u001b[?25lh\u001b[34h\u001b[?25h"]
301 | [58.169639, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
302 | [58.295514, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
303 | [58.39633, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
304 | [58.513571, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
305 | [58.606234, "o", "\u001b[?25lh\u001b[34h\u001b[?25h"]
306 | [58.692695, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
307 | [58.765509, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
308 | [59.224819, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
309 | [59.269505, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
310 | [59.407232, "o", "\u001b[?25lg\u001b[34h\u001b[?25h"]
311 | [59.50169, "o", "\u001b[?25lh\u001b[34h\u001b[?25h"]
312 | [59.580433, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
313 | [59.717308, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
314 | [60.459086, "o", "\u001b[?25lk\u001b[34h\u001b[?25h"]
315 | [60.507397, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
316 | [60.669488, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
317 | [60.804414, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
318 | [60.924104, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
319 | [61.111151, "o", "\u001b[?25lp\u001b[34h\u001b[?25h"]
320 | [61.204891, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
321 | [62.415043, "o", "\u001b[?25l\u001b[5;21H\u001b[4mkeycaps\u001b[24m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1HChange \"keycaps\" to:\r\r\n \u001b[23;2H1 \"key caps\"\r\r\n \u001b[23;2H2 \"recaps\"\r\r\n \u001b[23;2H3 \"kneecaps\"\r\r\n \u001b[23;2H4 \"keypads\"\r\r\n \u001b[23;2H5 \"key cops\"\r\r\n \u001b[23;2H6 \"key cups\"\r\r\n \u001b[23;2H7 \"key gaps\"\r\r\n \u001b[23;2H8 \"key cps\"\r\r\n "]
322 | [62.41512, "o", " \u001b[23;2H9 \"key cap's\"\r\r\n \u001b[23;1H10 \"key capes\"\r\r\n \u001b[23;1H11 \"key capos\"\r\r\n \u001b[23;1H12 \"key carps\"\r\r\n \u001b[23;1H13 \"redcaps\"\r\r\n \u001b[23;1H14 \"fey caps\"\r\r\n \u001b[23;1H15 \"hey caps\"\r\r\n \u001b[23;1H16 \"key cabs\"\r\r\n \u001b[23;1H17 \"key cads\"\r\r\n "]
323 | [62.415622, "o", " \u001b[23;1H18 \"key cams\"\r\r\n \u001b[23;1H19 \"key cans\"\r\r\n \u001b[23;1H20 \"key cats\"\r\r\n \u001b[23;1H21 \"key haps\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H \u001b[4;1HInspired by my smart phone's auto correct feature, I wrote it because sometimes my fingers \u001b"]
324 | [62.415948, "o", "[5;1Hdon't hit the right key caps \u001b[6;1H\u001b[1m\u001b[38;5;242m~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ \u001b[15;1H~ "]
325 | [62.416234, "o", " \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[5;30H\u001b[34h\u001b[?25h"]
326 | [62.516903, "o", "\u001b[?25lw\u001b[34h\u001b[?25h"]
327 | [62.62905, "o", "\u001b[?25lh\u001b[34h\u001b[?25h"]
328 | [62.716045, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
329 | [62.79658, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
330 | [62.896829, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
331 | [63.206602, "o", "\u001b[?25lI\u001b[34h\u001b[?25h"]
332 | [63.495213, "o", "\u001b[?25l'\u001b[34h\u001b[?25h"]
333 | [63.941733, "o", "\u001b[?25lm\u001b[34h\u001b[?25h"]
334 | [64.960008, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
335 | [65.47291, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
336 | [65.599787, "o", "\u001b[?25lp\u001b[34h\u001b[?25h"]
337 | [65.91777, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
338 | [66.124796, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
339 | [66.157771, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
340 | [66.252495, "o", "\u001b[?25lg\u001b[34h\u001b[?25h"]
341 | [67.337248, "o", "\u001b[?25l\b\b\b\b\b\b\u001b[4mtpying\u001b[24m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1HChange \"tpying\" to:\r\r\n \u001b[23;2H1 \"typing\"\r\r\n \u001b[23;2H2 \"spying\"\r\r\n \u001b[23;2H3 \"trying\"\r\r\n \u001b[23;2H4 \"toying\"\r\r\n \u001b[23;2H5 \"tying\"\r\r\n \u001b[23;2H6 \"drying\"\r\r\n \u001b[23;2H7 \"dying\"\r\r\n \u001b[23;2H8 \"paying\"\r\r\n "]
342 | [67.337326, "o", " \u001b[23;2H9 \"taping\"\r\r\n \u001b[23;1H10 \"copying\"\r\r\n \u001b[23;1H11 \"spaying\"\r\r\n \u001b[23;1H12 \"tidying\"\r\r\n \u001b[23;1H13 \"tapping\"\r\r\n \u001b[23;1H14 \"tipping\"\r\r\n \u001b[23;1H15 \"topping\"\r\r\n \u001b[23;1H16 \"pieing\"\r\r\n \u001b[23;1H17 \"hyping\"\r\r\n "]
343 | [67.337823, "o", " \u001b[23;1H18 \"espying\"\r\r\n \u001b[23;1H19 \"thing\"\r\r\n \u001b[23;1H20 \"crying\"\r\r\n \u001b[23;1H21 \"flying\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H \u001b[4;1HInspired by my smart phone's auto correct feature, I wrote it because sometimes my fingers \u001b[5;1Hdon't hit the right key caps when I"]
344 | [67.338176, "o", "'m typing \u001b[6;1H\u001b[1m\u001b[38;5;242m~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ \u001b[15;1H~ "]
345 | [67.338494, "o", " \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m "]
346 | [67.338728, "o", "\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[5;46H\u001b[34h\u001b[?25h"]
347 | [67.634753, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
348 | [67.788327, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
349 | [67.962202, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
350 | [68.061187, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
351 | [68.213604, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
352 | [68.31581, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
353 | [68.420883, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
354 | [69.055026, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
355 | [69.214321, "o", "\u001b[?25lf\u001b[34h\u001b[?25h"]
356 | [69.348346, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
357 | [69.549233, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
358 | [70.412694, "o", "\u001b[?25l\b\b\b\b\u001b[4mafst\u001b[24m\u001b[38;5;250m\u001b[48;5;235m.\u001b[23;1HChange \"afst\" to:\r\r\n \u001b[23;2H1 \"fast\"\r\r\n \u001b[23;2H2 \"asst\"\r\r\n \u001b[23;2H3 \"aft\"\r\r\n \u001b[23;2H4 \"avast\"\r\r\n \u001b[23;2H5 \"afoot\"\r\r\n \u001b[23;2H6 \"aghast\"\r\r\n \u001b[23;2H7 \"fats\"\r\r\n \u001b[23;2H8 \"just\"\r\r\n "]
359 | [70.412769, "o", " \u001b[23;2H9 \"last\"\r\r\n \u001b[23;1H10 \"most\"\r\r\n \u001b[23;1H11 \"must\"\r\r\n \u001b[23;1H12 \"fist\"\r\r\n \u001b[23;1H13 \"also\"\r\r\n \u001b[23;1H14 \"act\"\r\r\n \u001b[23;1H15 \"ask\"\r\r\n \u001b[23;1H16 \"at\"\r\r\n \u001b[23;1H17 \"as\"\r\r\n "]
360 | [70.413255, "o", "\u001b[23;1H18 \"inst\"\r\r\n \u001b[23;1H19 \"est\"\r\r\n \u001b[23;1H20 \"east\"\r\r\n \u001b[23;1H21 \"erst\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H \u001b[4;1HInspired by my smart phone's auto correct feature, I wrote it because sometimes my fingers \u001b[5;1Hdon't hit the right key caps when I'm typing really fast. "]
361 | [70.413604, "o", " \u001b[6;1H\u001b[1m\u001b[38;5;242m~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ \u001b[15;1H~ "]
362 | [70.413889, "o", "\u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[5;58H\u001b[34h\u001b[?25h"]
363 | [70.999296, "o", "\u001b[?25l\u001b[23;1H \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
364 | [70.999385, "o", "33_SelectCompletion(0)\r"]
365 | [71.000107, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\ \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\33_SelectCompletion(1)\r\u001bPtmux;\u001b\u001b[5 q\u001b\\"]
366 | [71.000709, "o", "\u001b[6;1H "]
367 | [71.001182, "o", "\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[6;1H\u001b[34h\u001b[?25h"]
368 | [71.089816, "o", "\u001b[?25l\u001b[23;1H \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
369 | [71.089889, "o", "33_SelectCompletion(0)\r"]
370 | [71.090111, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\ \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\33_SelectCompletion(1)\r"]
371 | [71.090272, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\"]
372 | [71.09043, "o", "\u001b[7;1H "]
373 | [71.091342, "o", "\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[7;1H\u001b[34h\u001b[?25h"]
374 | [71.614448, "o", "\u001b[?25lA\u001b[34h\u001b[?25h"]
375 | [72.433005, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
376 | [72.852538, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
377 | [72.981948, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
378 | [73.060339, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
379 | [73.110332, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
380 | [73.156159, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
381 | [74.181597, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
382 | [74.26179, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
383 | [74.363009, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
384 | [74.476623, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
385 | [74.644906, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
386 | [74.93276, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
387 | [75.283601, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
388 | [76.016228, "o", ",\b\u001b[?25l\u001b[23;82H,\u001b[7;15H\u001b[34h\u001b[?25h"]
389 | [76.178614, "o", "\u001b[?25l\u001b[23;82H \u001b[7;15H \b"]
390 | [76.179936, "o", ", \u001b[34h\u001b[?25h"]
391 | [76.427942, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
392 | [76.571334, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
393 | [76.807229, "o", "\u001b[?25l'\u001b[34h\u001b[?25h"]
394 | [76.923517, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
395 | [77.062659, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
396 | [78.109086, "o", "\u001b[?25lp\u001b[34h\u001b[?25h"]
397 | [78.219763, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
398 | [78.269237, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
399 | [78.4355, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
400 | [78.54785, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
401 | [78.63555, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
402 | [78.708617, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
403 | [79.14814, "o", "\u001b[?25lw\u001b[34h\u001b[?25h"]
404 | [79.294482, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
405 | [79.345534, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
406 | [79.459787, "o", "\u001b[?25ld\u001b[34h\u001b[?25h"]
407 | [79.828956, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
408 | [80.028464, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
409 | [80.228805, "o", "\u001b[?25lf\u001b[34h\u001b[?25h"]
410 | [80.30835, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
411 | [80.350813, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
412 | [81.212226, "o", "\u001b[?25l\u001b[7;29H\u001b[4mwonderfil\u001b[24m\u001b[38;5;250m\u001b[48;5;235m!\u001b[23;1HChange \"wonderfil\" to:\r\r\n \u001b[23;2H1 \"wonderful\"\r\r\n \u001b[23;2H2 \"wonder feel\"\r\r\n \u001b[23;2H3 \"wonder fill\"\r\r\n \u001b[23;2H4 \"wonder ail\"\r\r\n \u001b[23;2H5 \"wonder oil\"\r\r\n \u001b[23;2H6 \"wonder fol\"\r\r\n \u001b[23;2H7 \"wonder fail\"\r\r\n \u001b[23;2H8 \"wonder file\"\r\r\n "]
413 | [81.212431, "o", " \u001b[23;2H9 \"wonder foil\"\r\r\n \u001b[23;1H10 \"wonderfully\"\r\r\n \u001b[23;1H11 \"wonderful\" < \"wonderfil!\"\r\r\n \u001b[23;1H12 \"wonder fie\"\r\r\n \u001b[23;1H13 \"wonder fir\"\r\r\n \u001b[23;1H14 \"won derail\"\r\r\n \u001b[23;1H15 \"wonder fib\"\r\r\n \u001b[23;1H16 \"wonder fig\"\r\r\n "]
414 | [81.213395, "o", " \u001b[23;1H17 \"wonder fin\"\r\r\n \u001b[23;1H18 \"wonder fit\"\r\r\n \u001b[23;1H19 \"wonder nil\"\r\r\n \u001b[23;1H20 \"wonder film\"\r\r\n \u001b[23;1H21 \"wander feel\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H \u001b[4;1HInspired by my smart phon"]
415 | [81.213493, "o", "e's auto correct feature, I wrote it because sometimes my fingers \u001b[5;1Hdon't hit the right key caps when I'm typing really fast. \u001b[6;1H \u001b[7;1HAs you can see, it's pretty wonderful! \u001b[8;1H\u001b[1m\u001b[38;5;242m~ \u001b[9;1H~ \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ "]
416 | [81.213838, "o", " \u001b[15;1H~ \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m "]
417 | [81.214319, "o", "\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[7;39H\u001b[34h\u001b[?25h"]
418 | [81.443119, "o", "\u001b[?25l\u001b[23;1H \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
419 | [81.443202, "o", "33_SelectCompletion(0)\r"]
420 | [81.443439, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\ \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
421 | [81.443499, "o", "33_SelectCompletion(1)\r"]
422 | [81.443698, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\"]
423 | [81.443856, "o", "\u001b[8;1H "]
424 | [81.44479, "o", "\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[8;1H\u001b[34h\u001b[?25h"]
425 | [81.670143, "o", "\u001b[?25l\u001b[23;1H \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
426 | [81.670231, "o", "33_SelectCompletion(0)\r"]
427 | [81.67048, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\ \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\33_SelectCompletion(1)\r"]
428 | [81.670642, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\"]
429 | [81.670801, "o", "\u001b[9;1H "]
430 | [81.671698, "o", "\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[9;1H\u001b[34h\u001b[?25h"]
431 | [82.263267, "o", "\u001b[?25lH\u001b[34h\u001b[?25h"]
432 | [82.372134, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
433 | [82.483725, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
434 | [82.651848, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
435 | [82.955588, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
436 | [83.156807, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
437 | [83.300172, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
438 | [83.368041, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
439 | [84.418968, "o", ",\b\u001b[?25l\u001b[23;82H,\u001b[9;9H\u001b[34h\u001b[?25h"]
440 | [84.568783, "o", "\u001b[?25l\u001b[23;82H \u001b[9;9H \b"]
441 | [84.570012, "o", ", \u001b[34h\u001b[?25h"]
442 | [84.683137, "o", "\u001b[?25lI\u001b[34h\u001b[?25h"]
443 | [84.764066, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
444 | [84.932164, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
445 | [85.008426, "o", "\u001b[?25lh\u001b[34h\u001b[?25h"]
446 | [85.053567, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
447 | [85.219516, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
448 | [85.267063, "o", "\u001b[?25lk\u001b[34h\u001b[?25h"]
449 | [85.347309, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
450 | [85.84781, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
451 | [85.848703, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
452 | [85.93227, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
453 | [86.180987, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
454 | [86.278529, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
455 | [86.403509, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
456 | [86.53382, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
457 | [86.739911, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
458 | [86.787396, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
459 | [86.908371, "o", "\u001b[?25lg\u001b[34h\u001b[?25h"]
460 | [87.004212, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
461 | [87.158876, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
462 | [87.267633, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
463 | [87.366122, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
464 | [87.507928, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
465 | [87.604005, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
466 | [87.707393, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
467 | [87.780006, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
468 | [87.861606, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
469 | [88.510355, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
470 | [88.698429, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
471 | [90.046669, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
472 | [90.241226, "o", "\u001b[?25lb\u001b[34h\u001b[?25h"]
473 | [90.403851, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
474 | [91.077546, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
475 | [91.228951, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
476 | [91.291608, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
477 | [91.889585, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
478 | [91.890714, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
479 | [93.40353, "o", "\u001b[?25l\u001b[34h\u001b[?25h"]
480 | [93.731445, "o", ",\b\u001b[?25l\u001b[23;82H,\u001b[9;48H\u001b[34h\u001b[?25h"]
481 | [94.293207, "o", "\u001b[?25l\u001b[23;82H \u001b[9;48H \b"]
482 | [94.335803, "o", "\u001b[9;41H\u001b[4mbrainer\u001b[24m\u001b[38;5;250m\u001b[48;5;235m,\u001b[23;1HChange \"brainer\" to:\r\r\n \u001b[23;2H1 \"briner\"\r\r\n \u001b[23;2H2 \"brainier\"\r\r\n \u001b[23;2H3 \"braider\"\r\r\n \u001b[23;2H4 \"drainer\"\r\r\n \u001b[23;2H5 \"grainer\"\r\r\n \u001b[23;2H6 \"trainer\"\r\r\n \u001b[23;2H7 \"brained\"\r\r\n \u001b[23;2H8 \"brinier\"\r\r\n "]
483 | [94.335857, "o", " \u001b[23;2H9 \"brawnier\"\r\r\n \u001b[23;1H10 \"brain er\"\r\r\n \u001b[23;1H11 \"browner\"\r\r\n \u001b[23;1H12 \"brain\"\r\r\n \u001b[23;1H13 \"brine\"\r\r\n \u001b[23;1H14 \"briefer\"\r\r\n \u001b[23;1H15 \"bringer\"\r\r\n \u001b[23;1H16 \"mariner\"\r\r\n \u001b[23;1H17 \"bra inner\"\r\r\n "]
484 | [94.336477, "o", " \u001b[23;1H18 \"bragger\"\r\r\n \u001b[23;1H19 \"brasher\"\r\r\n \u001b[23;1H20 \"brawler\"\r\r\n \u001b[23;1H21 \"brazier\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H \u001b[4;1HInspired by my smart phone's auto correct feature, I wrote it because sometimes my fingers \u001b[5;1Hdon't hit the right "]
485 | [94.336667, "o", "key caps when I'm typing really fast. \u001b[6;1H \u001b[7;1HAs you can see, it's pretty wonderful! \u001b[8;1H \u001b[9;1HHonestly, I think installing it is a no briner, \u001b[10;1H\u001b[1m\u001b[38;5;242m~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ \u001b[15;1H~ "]
486 | [94.337026, "o", " \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m "]
487 | [94.337123, "o", "\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[9;49H\u001b[34h\u001b[?25h"]
488 | [95.167341, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
489 | [95.237817, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
490 | [95.409188, "o", "\u001b[?25ld\u001b[34h\u001b[?25h"]
491 | [95.594493, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
492 | [95.802864, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
493 | [95.890298, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
494 | [95.936645, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
495 | [95.995633, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
496 | [96.100911, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
497 | [96.207909, "o", "\u001b[?25lh\u001b[34h\u001b[?25h"]
498 | [96.347428, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
499 | [96.374084, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
500 | [96.550591, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
501 | [96.651957, "o", "\u001b[?25ld\u001b[34h\u001b[?25h"]
502 | [96.741406, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
503 | [97.200474, "o", "\u001b[?25ld\u001b[34h\u001b[?25h"]
504 | [97.229629, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
505 | [97.932274, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
506 | [98.020757, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
507 | [98.100302, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
508 | [98.173298, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
509 | [98.648265, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
510 | [98.76476, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
511 | [98.87841, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
512 | [99.311275, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
513 | [99.422588, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
514 | [99.558523, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
515 | [99.732792, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
516 | [99.806893, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
517 | [100.081604, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
518 | [100.798906, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
519 | [100.861634, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
520 | [101.268952, "o", "\u001b[?25lp\u001b[34h\u001b[?25h"]
521 | [101.446095, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
522 | [102.027937, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
523 | [102.744575, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
524 | [103.696114, "o", "\u001b[?25l\b\b\b\b\u001b[4mposs\u001b[24m\u001b[38;5;250m\u001b[48;5;235m.\u001b[23;1HChange \"poss\" to:\r\r\n \u001b[23;2H1 \"pass\"\r\r\n \u001b[23;2H2 \"piss\"\r\r\n \u001b[23;2H3 \"pose\"\r\r\n \u001b[23;2H4 \"puss\"\r\r\n \u001b[23;2H5 \"posse\"\r\r\n \u001b[23;2H6 \"pops\"\r\r\n \u001b[23;2H7 \"poses\"\r\r\n \u001b[23;2H8 \"boss\"\r\r\n "]
525 | [103.696201, "o", " \u001b[23;2H9 \"doss\"\r\r\n \u001b[23;1H10 \"joss\"\r\r\n \u001b[23;1H11 \"loss\"\r\r\n \u001b[23;1H12 \"moss\"\r\r\n \u001b[23;1H13 \"posh\"\r\r\n \u001b[23;1H14 \"toss\"\r\r\n \u001b[23;1H15 \"pods\"\r\r\n \u001b[23;1H16 \"pons\"\r\r\n \u001b[23;1H17 \"post\"\r\r\n "]
526 | [103.696832, "o", "\u001b[23;1H18 \"posy\"\r\r\n \u001b[23;1H19 \"pots\"\r\r\n \u001b[23;1H20 \"pews\"\r\r\n \u001b[23;1H21 \"sops\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H \u001b[4;1HInspired by my smart phone's auto correct feature, I wrote it because sometimes my fingers \u001b[5;1Hdon't hit the right key caps when I'm typing really fast. "]
527 | [103.697152, "o", " \u001b[6;1H \u001b[7;1HAs you can see, it's pretty wonderful! \u001b[8;1H \u001b[9;1HHonestly, I think installing it is a no briner, and you should do so as soon as pass. \u001b[10;1H\u001b[1m\u001b[38;5;242m~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ \u001b[15;1H~ \u001b[16;1H~ "]
528 | [103.697571, "o", " \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m "]
529 | [103.697666, "o", "\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[9;86H\u001b[34h\u001b[?25h"]
530 | [105.206643, "o", "\u001b[?25l\u001b[34h\u001b[?25h"]
531 | [105.40507, "o", "\u001b[?25l\u001b[23;1H \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
532 | [105.405149, "o", "33_SelectCompletion(0)\r"]
533 | [105.405456, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\ \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
534 | [105.405518, "o", "33_SelectCompletion(1)\r"]
535 | [105.40572, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\"]
536 | [105.406689, "o", "\u001b[10;1H "]
537 | [105.40684, "o", "\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[10;1H\u001b[34h\u001b[?25h"]
538 | [105.498738, "o", "\u001b[?25l\u001b[23;1H \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
539 | [105.49882, "o", "33_SelectCompletion(0)\r"]
540 | [105.499068, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\ \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
541 | [105.499129, "o", "33_SelectCompletion(1)\r"]
542 | [105.499327, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\"]
543 | [105.499388, "o", "\u001b[11;1H "]
544 | [105.500334, "o", "\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[11;1H\u001b[34h\u001b[?25h"]
545 | [106.225077, "o", "\u001b[?25lI\u001b[34h\u001b[?25h"]
546 | [106.3599, "o", "\u001b[?25lg\u001b[34h\u001b[?25h"]
547 | [106.454935, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
548 | [106.5814, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
549 | [106.667121, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
550 | [106.732939, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
551 | [106.854809, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
552 | [107.357908, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
553 | [107.461318, "o", "\u001b[?25lh\u001b[34h\u001b[?25h"]
554 | [107.535802, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
555 | [107.612977, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
556 | [108.171035, "o", "\u001b[?25lN\u001b[34h\u001b[?25h"]
557 | [108.187361, "o", "\u001b[?25lA\u001b[34h\u001b[?25h"]
558 | [108.339407, "o", "\u001b[?25lY\u001b[34h\u001b[?25h"]
559 | [108.50957, "o", "\u001b[?25lS\u001b[34h\u001b[?25h"]
560 | [108.660718, "o", "\u001b[?25lA\u001b[34h\u001b[?25h"]
561 | [108.821931, "o", "\u001b[?25lY\u001b[34h\u001b[?25h"]
562 | [109.147291, "o", "\u001b[?25lE\u001b[34h\u001b[?25h"]
563 | [109.315636, "o", "\u001b[?25lR\u001b[34h\u001b[?25h"]
564 | [109.595523, "o", "\u001b[?25lS\u001b[34h\u001b[?25h"]
565 | [110.219667, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
566 | [110.443879, "o", "\u001b[?25lw\u001b[34h\u001b[?25h"]
567 | [110.532457, "o", "\u001b[?25lh\u001b[34h\u001b[?25h"]
568 | [110.683363, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
569 | [110.787284, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
570 | [110.947259, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
571 | [111.075539, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
572 | [111.178058, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
573 | [111.269372, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
574 | [111.387923, "o", "\u001b[?25lm\u001b[34h\u001b[?25h"]
575 | [112.370267, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
576 | [112.628766, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
577 | [112.717277, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
578 | [112.763883, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
579 | [112.817432, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
580 | [113.051031, "o", "\u001b[?25ld\u001b[34h\u001b[?25h"]
581 | [113.138374, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
582 | [113.171979, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
583 | [113.460153, "o", "\u001b[?25l'\u001b[34h\u001b[?25h"]
584 | [113.579753, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
585 | [113.71713, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
586 | [114.561609, "o", "\u001b[?25lw\u001b[34h\u001b[?25h"]
587 | [114.711304, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
588 | [115.332155, "o", "\u001b[?25l\b \b\u001b[34h\u001b[?25h"]
589 | [115.455456, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
590 | [115.549958, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
591 | [115.629848, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
592 | [116.182653, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
593 | [116.405959, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
594 | [116.502813, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
595 | [116.566817, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
596 | [117.182606, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
597 | [117.396066, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
598 | [117.4855, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
599 | [117.598462, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
600 | [117.859902, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
601 | [118.060398, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
602 | [118.22841, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
603 | [118.436898, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
604 | [118.539997, "o", "\u001b[?25lp\u001b[34h\u001b[?25h"]
605 | [118.637322, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
606 | [119.759126, "o", "\u001b[?25l\u001b[11;50H\u001b[4mautoaccept\u001b[24m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1HChange \"autoaccept\" to:\r\r\n \u001b[23;2H1 \"auto accept\"\r\r\n \u001b[23;2H2 \"auto accent\"\r\r\n \u001b[23;2H3 \"auto accepts\"\r\r\n \u001b[23;2H4 \"alto accept\"\r\r\n \u001b[23;2H5 \"au to accept\"\r\r\n \u001b[23;2H6 \"auto kept\"\r\r\n \u001b[23;2H7 \"auto accepter\"\r\r\n \u001b[23;2H8 \"auto acceptor\"\r\r"]
607 | [119.759206, "o", "\n \u001b[23;2H9 \"ado accept\"\r\r\n \u001b[23;1H10 \"ate accept\"\r\r\n \u001b[23;1H11 \"audio accept\"\r\r\n \u001b[23;1H12 \"to accept\"\r\r\n \u001b[23;1H13 \"au too accept\"\r\r\n \u001b[23;1H14 \"auto incept\"\r\r\n \u001b[23;1H15 \"auto accede\"\r\r\n \u001b[23;1H16 \"auto accost\"\r\r\n "]
608 | [119.759856, "o", " \u001b[23;1H17 \"auto except\"\r\r\n \u001b[23;1H18 \"auto crept\"\r\r\n \u001b[23;1H19 \"out accept\"\r\r\n \u001b[23;1H20 \"at accept\"\r\r\n \u001b[23;1H21 \"auto adept\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H \u001b[4;1HInspired by my smart phon"]
609 | [119.760141, "o", "e's auto correct feature, I wrote it because sometimes my fingers \u001b[5;1Hdon't hit the right key caps when I'm typing really fast. \u001b[6;1H \u001b[7;1HAs you can see, it's pretty wonderful! \u001b[8;1H \u001b[9;1HHonestly, I think installing it is a no briner, and you should do so as soon as pass. \u001b[10;1H \u001b[11;1HIgnore the NAYSAYERS who claim you don't want to auto accept \u001b[12;1H\u001b[1m\u001b[38;5;242m~ \u001b[13;1H~ \u001b[14;1H~ "]
610 | [119.760553, "o", " \u001b[15;1H~ \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m "]
611 | [119.760749, "o", "\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[11;62H\u001b[34h\u001b[?25h"]
612 | [120.153086, "o", "\u001b[?25lV\u001b[34h\u001b[?25h"]
613 | [120.44383, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
614 | [120.605487, "o", "\u001b[?25lm\u001b[34h\u001b[?25h"]
615 | [120.917311, "o", "\u001b[?25l'\u001b[34h\u001b[?25h"]
616 | [121.072767, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
617 | [121.318019, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
618 | [121.893138, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
619 | [121.964825, "o", "\u001b[?25lp\u001b[34h\u001b[?25h"]
620 | [122.253332, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
621 | [122.932921, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
622 | [122.956291, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
623 | [123.173605, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
624 | [123.230658, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
625 | [123.333186, "o", "\u001b[?25lg\u001b[34h\u001b[?25h"]
626 | [123.569094, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
627 | [123.933494, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
628 | [124.125158, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
629 | [124.332419, "o", "\u001b[?25lg\u001b[34h\u001b[?25h"]
630 | [124.49529, "o", "\u001b[?25lg\u001b[34h\u001b[?25h"]
631 | [124.684399, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
632 | [124.92526, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
633 | [125.238295, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
634 | [125.996376, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
635 | [126.157524, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
636 | [126.219813, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
637 | [126.302989, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
638 | [127.522405, "o", "\u001b[?25l\u001b[11;77H\u001b[4msuggestoins\u001b[24m\u001b[38;5;250m\u001b[48;5;235m.\u001b[23;1HChange \"suggestoins\" to:\r\r\n \u001b[23;2H1 \"suggestions\"\r\r\n \u001b[23;2H2 \"suggestion's\"\r\r\n \u001b[23;2H3 \"suggesting\"\r\r\n \u001b[23;2H4 \"suggestion\"\r\r\n \u001b[23;2H5 \"suggest ions\"\r\r\n \u001b[23;2H6 \"suggest ins\"\r\r\n \u001b[23;2H7 \"suggest ons\"\r\r\n \u001b[23;2H8 \"suggest owns\"\r\r"]
639 | [127.522482, "o", "\n \u001b[23;2H9 \"suggestions\" < \"suggestoins.\"\r\r\n \u001b[23;1H10 \"suggest oils\"\r\r\n \u001b[23;1H11 \"suggest oink\"\r\r\n \u001b[23;1H12 \"suggest bins\"\r\r\n \u001b[23;1H13 \"suggest dins\"\r\r\n \u001b[23;1H14 \"suggest fins\"\r\r\n \u001b[23;1H15 \"suggest gins\"\r\r\n \u001b[23;1H16 \"suggest kins\"\r\r\n "]
640 | [127.523148, "o", " \u001b[23;1H17 \"suggest pins\"\r\r\n \u001b[23;1H18 \"suggest sins\"\r\r\n \u001b[23;1H19 \"suggest tins\"\r\r\n \u001b[23;1H20 \"suggest wins\"\r\r\n \u001b[23;1H21 \"suggests ins\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H "]
641 | [127.523421, "o", " \u001b[4;1HInspired by my smart phone's auto correct feature, I wrote it because sometimes my fingers \u001b[5;1Hdon't hit the right key caps when I'm typing really fast. \u001b[6;1H \u001b[7;1HAs you can see, it's pretty wonderful! \u001b[8;1H \u001b[9;1HHonestly, I think installing it is a no briner, and you should do so as soon as pass. \u001b[10;1H \u001b[11;1HIgnore the NAYSAYERS who claim you don't want to auto accept Vim's spelling suggestions. \u001b[12;1H\u001b[1m\u001b[38;5;242m~ \u001b[13;1H~ \u001b[14;1H~ "]
642 | [127.523737, "o", " \u001b[15;1H~ \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m "]
643 | [127.524055, "o", "\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[11;89H\u001b[34h\u001b[?25h"]
644 | [127.935583, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
645 | [128.347803, "o", "\u001b[?25lT\u001b[34h\u001b[?25h"]
646 | [128.519835, "o", "\u001b[?25lh\u001b[34h\u001b[?25h"]
647 | [128.636358, "o", "\u001b[?25la\u001b[12;1H\u001b[34h\u001b[?25h"]
648 | [128.741071, "o", "\u001b[?25l\u001b[11;90H \u001b[12;1HThat \u001b[12;5H\u001b[34h\u001b[?25h"]
649 | [128.980505, "o", "\u001b[?25l'\u001b[34h\u001b[?25h"]
650 | [129.109294, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
651 | [129.26286, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
652 | [129.347716, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
653 | [129.437162, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
654 | [130.61235, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
655 | [130.718429, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
656 | [130.893141, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
657 | [131.153886, "o", "\u001b[?25lk\u001b[34h\u001b[?25h"]
658 | [131.476694, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
659 | [131.677704, "o", "\u001b[?25lm\u001b[34h\u001b[?25h"]
660 | [131.796658, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
661 | [131.92554, "o", "\u001b[?25lm\u001b[34h\u001b[?25h"]
662 | [132.141692, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
663 | [132.308868, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
664 | [133.86452, "o", "\u001b[?25l\u001b[12;10H\u001b[4mcockamamie\u001b[24m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1HChange \"cockamamie\" to:\r\r\n \u001b[23;2H1 \"cock Amalie\"\r\r\n \u001b[23;2H2 \"cocoa ramie\"\r\r\n \u001b[23;2H3 \"coca ramie\"\r\r\n \u001b[23;2H4 \"cock amaze\"\r\r\n \u001b[23;2H5 \"cock anomie\"\r\r\n \u001b[23;2H6 \"cock ramie\"\r\r\n \u001b[23;2H7 \"commie\"\r\r\n \u001b[23;2H8 \"cockade\"\r\r\n "]
665 | [133.864597, "o", " \u001b[23;2H9 \"cocks ramie\"\r\r\n \u001b[23;1H10 \"cocky ramie\"\r\r\n \u001b[23;1H11 \"cocktail\"\r\r\n \u001b[23;1H12 \"comae\"\r\r\n \u001b[23;1H13 \"cocaine\"\r\r\n \u001b[23;1H14 \"cockatoo\"\r\r\n \u001b[23;1H15 \"cockle\"\r\r\n \u001b[23;1H16 \"commit\"\r\r\n \u001b[23;1H17 \"cookie\"\r\r\n "]
666 | [133.865283, "o", " \u001b[23;1H18 \"clammier\"\r\r\n \u001b[23;1H19 \"commies\"\r\r\n \u001b[23;1H20 \"camomile\"\r\r\n \u001b[23;1H21 \"cockier\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H \u001b[4;1HInspired by my smart phone's auto correct feature, I wrote it because sometimes "]
667 | [133.865689, "o", "my fingers \u001b[5;1Hdon't hit the right key caps when I'm typing really fast. \u001b[6;1H \u001b[7;1HAs you can see, it's pretty wonderful! \u001b[8;1H \u001b[9;1HHonestly, I think installing it is a no briner, and you should do so as soon as pass. \u001b[10;1H \u001b[11;1HIgnore the NAYSAYERS who claim you don't want to auto accept Vim's spelling suggestions. \u001b[12;1HThat's a cock Amalie \u001b[13;1H\u001b[1m\u001b[38;5;242m~ \u001b[14;1H~ \u001b[15;1H~ "]
668 | [133.866017, "o", " \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m "]
669 | [133.866416, "o", "\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[12;22H\u001b[34h\u001b[?25h"]
670 | [134.069678, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
671 | [134.262353, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
672 | [134.405132, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
673 | [134.498531, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
674 | [134.569776, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
675 | [134.580245, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
676 | [135.214942, "o", "\u001b[?25l!\u001b[34h\u001b[?25h"]
677 | [136.228637, "o", "\u001b[?25l\u001b[23;1H \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
678 | [136.228738, "o", "33_SelectCompletion(0)\r"]
679 | [136.22901, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\ \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
680 | [136.22907, "o", "33_SelectCompletion(1)\r"]
681 | [136.230188, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\\u001b[13;1H "]
682 | [136.23059, "o", "\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[13;1H\u001b[34h\u001b[?25h"]
683 | [136.339184, "o", "\u001b[?25l\u001b[23;1H \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
684 | [136.339262, "o", "33_SelectCompletion(0)\r"]
685 | [136.339493, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\ \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\33_SelectCompletion(1)\r"]
686 | [136.339653, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\"]
687 | [136.339812, "o", "\u001b[14;1H "]
688 | [136.340764, "o", "\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[14;1H\u001b[34h\u001b[?25h"]
689 | [136.742333, "o", "\u001b[?25lV\u001b[34h\u001b[?25h"]
690 | [136.836176, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
691 | [136.956149, "o", "\u001b[?25lm\u001b[34h\u001b[?25h"]
692 | [137.765856, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
693 | [138.035247, "o", "\u001b[?25lY\u001b[34h\u001b[?25h"]
694 | [138.188518, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
695 | [138.235505, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
696 | [138.685063, "o", ",\b\u001b[?25l\u001b[23;82H,\u001b[14;8H\u001b[34h\u001b[?25h"]
697 | [139.163899, "o", "\u001b[?25l\u001b[23;82H \u001b[14;8H \b"]
698 | [139.164611, "o", ", \u001b[34h\u001b[?25h"]
699 | [139.608394, "o", "\u001b[?25lA\u001b[34h\u001b[?25h"]
700 | [139.645818, "o", "\u001b[?25lu\u001b[34h\u001b[?25h"]
701 | [139.791284, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
702 | [139.876113, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
703 | [140.068029, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
704 | [140.179868, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
705 | [140.313672, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
706 | [140.443812, "o", "\u001b[?25lr\u001b[34h\u001b[?25h"]
707 | [140.57271, "o", "\u001b[?25le\u001b[34h\u001b[?25h"]
708 | [140.688262, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
709 | [140.940835, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
710 | [141.845245, "o", "\u001b[?25l\u001b[14;10H\u001b[4mAutocorrect\u001b[24m\u001b[38;5;250m\u001b[48;5;235m!\u001b[23;1HChange \"Autocorrect\" to:\r\r\n \u001b[23;2H1 \"Auto correct\"\r\r\n \u001b[23;2H2 \"Auto corrects\"\r\r\n \u001b[23;2H3 \"Alto correct\"\r\r\n \u001b[23;2H4 \"Au to correct\"\r\r\n \u001b[23;2H5 \"Auto correct\" < \"Autocorrect!\"\r\r\n \u001b[23;2H6 \"Arte correct\"\r\r\n \u001b[23;2H7 \"Audi correct\"\r\r\n "]
711 | [141.845322, "o", " \u001b[23;2H8 \"Otto correct\"\r\r\n \u001b[23;2H9 \"Ado correct\"\r\r\n \u001b[23;1H10 \"Ate correct\"\r\r\n \u001b[23;1H11 \"Ito correct\"\r\r\n \u001b[23;1H12 \"Ute correct\"\r\r\n \u001b[23;1H13 \"Autocorrelate\"\r\r\n \u001b[23;1H14 \"Audio correct\"\r\r\n \u001b[23;1H15 \"Auto correcter\"\r\r\n \u001b[23;1H16 \"Auto corrector\"\r\r\n "]
712 | [141.845998, "o", " \u001b[23;1H17 \"Au too correct\"\r\r\n \u001b[23;1H18 \"Duo correct\"\r\r\n \u001b[23;1H19 \"Auto corrects\" < \"Autocorrect!\"\r\r\n \u001b[23;1H20 \"To correct\"\r\r\n \u001b[23;1H21 \"Aero correct\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H "]
713 | [141.846242, "o", " \u001b[4;1HInspired by my smart phone's auto correct feature, I wrote it because sometimes my fingers \u001b[5;1Hdon't hit the right key caps when I'm typing really fast. \u001b[6;1H \u001b[7;1HAs you can see, it's pretty wonderful! \u001b[8;1H \u001b[9;1HHonestly, I think installing it is a no briner, and you should do so as soon as pass. \u001b[10;1H \u001b[11;1HIgnore the NAYSAYERS who claim you don't want to auto accept Vim's spelling suggestions. \u001b[12;1HThat's a cock Amalie notion! \u001b[13;1H \u001b[14;"]
714 | [141.846522, "o", "1HVim You, Auto correct! \u001b[15;1H\u001b[1m\u001b[38;5;242m~ \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m "]
715 | [141.846891, "o", "\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[14;23H\u001b[34h\u001b[?25h"]
716 | [142.680302, "o", "\u001b[?25l \u001b[34h\u001b[?25h"]
717 | [142.81147, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
718 | [142.892693, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
719 | [143.07883, "o", "\u001b[?25l\b\b\u001b[4mis\u001b[24m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1HChange \"is\" to:\r\r\n \u001b[23;2H1 \"Is\"\r\r\n \u001b[23;2H2 \"As\"\r\r\n \u001b[23;2H3 \"Es\"\r\r\n \u001b[23;2H4 \"Us\"\r\r\n \u001b[23;2H5 \"Si\"\r\r\n \u001b[23;2H6 \"I's\"\r\r\n \u001b[23;2H7 \"Cs\"\r\r\n \u001b[23;2H8 \"Id\"\r\r\n \u001b[23"]
720 | [143.078896, "o", ";2H9 \"If\"\r\r\n \u001b[23;1H10 \"In\"\r\r\n \u001b[23;1H11 \"It\"\r\r\n \u001b[23;1H12 \"Iv\"\r\r\n \u001b[23;1H13 \"Ls\"\r\r\n \u001b[23;1H14 \"Ms\"\r\r\n \u001b[23;1H15 \"Ii\"\r\r\n \u001b[23;1H16 \"Ix\"\r\r\n \u001b[23;1H17 \"Bis\"\r\r\n \u001b[23;1H18 \"Dis\"\r\r\n "]
721 | [143.079599, "o", " \u001b[23;1H19 \"Fis\"\r\r\n \u001b[23;1H20 \"His\"\r\r\n \u001b[23;1H21 \"Sis\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H \u001b[4;1HInspired by my smart phone's auto correct feature, I wrote it because sometimes my fingers \u001b[5;1Hdon't hit the right key caps when I'm typing really fast. \u001b[6;1H "]
722 | [143.079882, "o", " \u001b[7;1HAs you can see, it's pretty wonderful! \u001b[8;1H \u001b[9;1HHonestly, I think installing it is a no briner, and you should do so as soon as pass. \u001b[10;1H \u001b[11;1HIgnore the NAYSAYERS who claim you don't want to auto accept Vim's spelling suggestions. \u001b[12;1HThat's a cock Amalie notion! \u001b[13;1H \u001b[14;1HVim You, Auto correct! Is \u001b[15;1H\u001b[1m\u001b[38;5;242m~ \u001b[16;1H~ "]
723 | [143.079981, "o", " \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m "]
724 | [143.080412, "o", "\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[14;27H\u001b[34h\u001b[?25h"]
725 | [144.029736, "o", "\u001b[?25lf\u001b[34h\u001b[?25h"]
726 | [144.180058, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
727 | [144.317609, "o", "\u001b[?25ln\u001b[34h\u001b[?25h"]
728 | [144.549268, "o", "\u001b[?25l-\u001b[34h\u001b[?25h"]
729 | [144.844885, "o", "\u001b[?25lb\u001b[34h\u001b[?25h"]
730 | [144.964311, "o", "\u001b[?25ll\u001b[34h\u001b[?25h"]
731 | [145.166728, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
732 | [145.277748, "o", "\u001b[?25lo\u001b[34h\u001b[?25h"]
733 | [145.45458, "o", "\u001b[?25ld\u001b[34h\u001b[?25h"]
734 | [145.557722, "o", "\u001b[?25ly\u001b[34h\u001b[?25h"]
735 | [146.674247, "o", "\u001b[?25l-\u001b[34h\u001b[?25h"]
736 | [147.090528, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
737 | [147.176031, "o", "\u001b[?25la\u001b[34h\u001b[?25h"]
738 | [147.437695, "o", "\u001b[?25ls\u001b[34h\u001b[?25h"]
739 | [147.684704, "o", "\u001b[?25lt\u001b[34h\u001b[?25h"]
740 | [147.807987, "o", "\u001b[?25li\u001b[34h\u001b[?25h"]
741 | [147.913662, "o", "\u001b[?25lc\u001b[34h\u001b[?25h"]
742 | [148.578118, "o", "\u001b[?25l\b\b\b\b\b\b\u001b[4mtastic\u001b[24m\u001b[38;5;250m\u001b[48;5;235m!\u001b[23;1HChange \"tastic\" to:\r\r\n \u001b[23;2H1 \"mastic\"\r\r\n \u001b[23;2H2 \"tactic\"\r\r\n \u001b[23;2H3 \"static\"\r\r\n \u001b[23;2H4 \"deistic\"\r\r\n \u001b[23;2H5 \"theistic\"\r\r\n \u001b[23;2H6 \"rustic\"\r\r\n \u001b[23;2H7 \"tasted\"\r\r\n \u001b[23;2H8 \"tastes\"\r\r\n "]
743 | [148.578186, "o", " \u001b[23;2H9 \"testis\"\r\r\n \u001b[23;1H10 \"tasty\"\r\r\n \u001b[23;1H11 \"taste\"\r\r\n \u001b[23;1H12 \"taster\"\r\r\n \u001b[23;1H13 \"caustic\"\r\r\n \u001b[23;1H14 \"tasting\"\r\r\n \u001b[23;1H15 \"drastic\"\r\r\n \u001b[23;1H16 \"tastier\"\r\r\n \u001b[23;1H17 \"attic\"\r\r\n "]
744 | [148.578885, "o", " \u001b[23;1H18 \"tacit\"\r\r\n \u001b[23;1H19 \"elastic\"\r\r\n \u001b[23;1H20 \"ta stick\"\r\r\n \u001b[23;1H21 \"ta stoic\"\r\r\n \u001b[23;1HType number and or click with mouse (empty cancels): 1\u001b[23m\u001b[24m\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[1;1HVim You, Auto correct! Is a plug-in that automatically corrects your spelling mistakes and \u001b[2;1Htypos as you type. \u001b[3;1H \u001b[4;1HInspired by my smart phone's auto correct feature, I wrote it because sometimes my fingers \u001b[5;1Hdon't hit the right key caps w"]
745 | [148.579111, "o", "hen I'm typing really fast. \u001b[6;1H \u001b[7;1HAs you can see, it's pretty wonderful! \u001b[8;1H \u001b[9;1HHonestly, I think installing it is a no briner, and you should do so as soon as pass. \u001b[10;1H \u001b[11;1HIgnore the NAYSAYERS who claim you don't want to auto accept Vim's spelling suggestions. \u001b[12;1HThat's a cock Amalie notion! \u001b[13;1H \u001b[14;1HVim You, Auto correct! Is fan-bloody-mastic! \u001b[15;1H\u001b[1m\u001b[38;5;242m~ "]
746 | [148.579213, "o", " \u001b[16;1H~ \u001b[17;1H~ \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[22;1H\u001b[1m "]
747 | [148.579709, "o", "\u001b[m\u001b[38;5;250m\u001b[48;5;235m\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[14;45H\u001b[34h\u001b[?25h"]
748 | [149.74455, "o", "\u001b[?25l\u001b[23;1H \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
749 | [149.744653, "o", "33_SelectCompletion(0)\r"]
750 | [149.744931, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\ \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\33_SelectCompletion(1)\r"]
751 | [149.746014, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\\u001b[15;1H "]
752 | [149.74641, "o", "\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[15;1H\u001b[34h\u001b[?25h"]
753 | [149.810879, "o", "\u001b[?25l\u001b[23;1H \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
754 | [149.810955, "o", "33_SelectCompletion(0)\r"]
755 | [149.811179, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\ \r=\u001bPtmux;\u001b\u001b[2 q\u001b\\33_SelectCompletion(1)\r"]
756 | [149.811983, "o", "\u001bPtmux;\u001b\u001b[5 q\u001b\\\u001b[16;1H "]
757 | [149.812504, "o", "\u001b[23;1H\u001b[38;5;65m-- INSERT --\u001b[m\u001b[38;5;250m\u001b[48;5;235m \u001b[16;1H\u001b[34h\u001b[?25h"]
758 | [151.324046, "o", "\u001b[?25l\u001b[34h\u001b[?25h"]
759 | [151.509499, "o", "\u001b[23;1H \u001b[16;1H\u001b[?25l\u001b[23;82H^[\u001b[16;1H\u001b[34h\u001b[?25h"]
760 | [152.51505, "o", "\u001b[?25l\u001b[23;82H \u001b[16;1H\u001bPtmux;\u001b\u001b[2 q\u001b\\"]
761 | [152.515963, "o", "\u001b[34h\u001b[?25h"]
762 | [153.533945, "o", "\u001b[?25l\u001b[23;82H:\u001b[16;1H"]
763 | [153.534554, "o", "\u001b[23;82H \r:\u001b[34h\u001b[?25h"]
764 | [164.139161, "o", "q\u001b[?25l\u001b[34h\u001b[?25h"]
765 | [164.864868, "o", "!\u001b[?25l\u001b[34h\u001b[?25h"]
766 | [175.478886, "o", "\r"]
767 | [175.494765, "o", "\u001b[?25l\u001b[23;1H\u001b[K\u001b[23;1H\u001b[?1l\u001b>\u001b[34h\u001b[?25h\u001b[?1049l"]
768 |
--------------------------------------------------------------------------------
/trailer/vim-you-autocorrect.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sedm0784/vim-you-autocorrect/a251513305d5c883346ab75db194aa3b5378c64f/trailer/vim-you-autocorrect.gif
--------------------------------------------------------------------------------