Erros de ortografia de correção automática

19

Ativei a verificação ortográfica com

:set spell spelllang=en_us

Agora posso corrigir a ortografia de uma palavra digitando 1z=(ou seja, escolha a 1correção de ortografia st z=) ( ).

Como faço para que isso seja executado automaticamente na palavra anterior sempre que digito um espaço, sem atrasos? Ele também tenta "consertar" as palavras que estão escritas corretamente (e é por isso que não posso fazer algo assim inoremap <space> <esc>mmb1z=`ma<space>), então só quero corrigir todas as palavras que digitar se estiverem incorretas .

Existe alguma maneira de corrigir automaticamente erros de ortografia no Vim?

Maçaneta
fonte
2
Veja isso
Arturo Volpe
1
@ArturoVolpe Parece uma resposta legítima à pergunta.
precisa saber é o seguinte
você pode combinar o erro anterior '[s' em um remapeamento? Eu adicionaria como resposta, mas não sei como fazer o remapeamento, então deixarei isso para outra pessoa.
Nick J Adams

Respostas:

8

Eu recomendaria não corrigir automaticamente todas as palavras marcadas como erradas, por dois motivos.

  • Primeiro, você obterá muitos falsos positivos nas coisas que deseja digitar, especialmente em redações mais técnicas. Você certamente pode (e talvez deva) adicionar esses dois ao seu dicionário para que sejam reconhecidos e sugeridos. No entanto, se você não perceber que eles são corrigidos automaticamente, eles podem passar para a versão final de um documento - ou pior, se você estiver escrevendo código ou arquivo de configuração (por exemplo, alterar xminpara minfaria o gráfico parecer totalmente errado). Os comentários também podem se tornar estranhos (por exemplo, eu mudei "Rotular e instrução nula" para "Rotular e anular instrução", que altera o significado (a) de uma frase substantiva para um imperativo e (b) para significar algo completamente diferente. )
  • Segundo, a correção automática é muito ruim em palavras curtas. Na minha experiência, ele tende a completar a palavra mais próxima, que, com, por exemplo, palavras de três letras, pode ser totalmente diferente do que você quer dizer. Se você quer dizer para digitar de mas acidentalmente digitar fo , será corrigido para alguns -não o que você queria! Novamente, isso pode ser difícil de entender em revisões superficiais.

Com isso em mente, acho que seu objetivo real é poder reconhecer e corrigir rapidamente erros tipográficos.

Eu uso os seguintes mapeamentos para fazer isso:

" Go back to last misspelled word and pick first suggestion.
inoremap <C-L> <C-G>u<Esc>[s1z=`]a<C-G>u

" Select last misspelled word (typing will edit).
nnoremap <C-K> <Esc>[sve<C-G>
inoremap <C-K> <Esc>[sve<C-G>
snoremap <C-K> <Esc>b[sviw<C-G>

Ao digitar o texto do corpo, quaisquer palavras com erros ortográficos serão sublinhadas, de acordo com minhas configurações de destaque. Se vejo que a palavra é relativamente longa e é um erro de digitação simples, posso imaginar que spellprovavelmente a corrigirá corretamente, então pressionei <C-L>e continuo digitando. Se for uma palavra mais curta ou eu antecipar que ela vai dar errado, eu posso pressionar <C-K>e ajustá-la. Por fim, se spellinesperadamente corrigir a coisa errada, defini um marcador de desfazer com <C-G>u, para que eu possa <Esc>ucWalterá-lo manualmente Isso contribui para um fluxo de trabalho muito rápido na maioria das vezes.

wchargin
fonte
A correção automática de cada palavra é uma excelente ideia .
Rich
2

Por acaso, escrevi um plugin que faz exatamente isso. É chamado Vim Você, Autocorreção!

Após a instalação, digite :EnableAutocorrectpara ativá- lo em qualquer buffer e em breve você verá que o escândalo do wchargin é bastante infundado.

Rico
fonte
Observe que seu comentário na resposta do wchargin foi marcado como rude, editei-o para remover o "Poppycock!" e demitiu a bandeira. Não é grande coisa, apenas FYI.
Martin Tournoij
@MartinTournoij Está tudo bem. Muitas pessoas no reddit também não entenderam a piada . :) (Obrigado pelo aviso, no entanto.) #
066 Rich Rich
Sr. Rich qual pacote eu quero instalar e digite: EnableAutoCorrect eu não entendi
MP Creations
@MPCreations Você usa um gerenciador de plugins?
Rich
@MPCreations Talvez dê uma olhada nas respostas para vi.stackexchange.com/questions/613/… se você não souber como instalar um plug
Rich