├── 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 --------------------------------------------------------------------------------