자동 수정 철자 실수


19

맞춤법 검사를 사용하도록 설정했습니다.

:set spell spelllang=en_us

이제 입력하여 단어의 철자를 수정할 수 있습니다 1z=(즉, 1st 철자 수정 ( z=)을 선택).

공백을 입력 할 때마다 지연없이 이전 단어에서 자동으로 실행되도록하려면 어떻게해야합니까? 그것은 또한 "수정"말을하려고 이미 철자 (내가 좋아하는 뭔가를 할 수없는 이유이다 inoremap <space> <esc>mmb1z=`ma<space>나는 단지 모든 단어의 I 형을 교정 할 수 있도록,) 가 맞춤법이 틀린 않다면 .

Vim에서 철자가 틀린 단어를 자동 수정하는 방법이 있습니까?



1
@ArturoVolpe 그것은 질문에 대한 합법적 인 답변처럼 보입니다.
bsmith89

다시 매핑에서 이전 오류 '[s'를 결합 할 수 있습니까? 답변으로 추가하고 싶지만 다시 매핑하는 방법을 모르므로 다른 사람을 위해 남겨 두겠습니다.
Nick J Adams

답변:


8

두 가지 이유로 잘못 표시된 모든 단어를 자동으로 수정하지 않는 것이 좋습니다.

  • 먼저, 특히 기술적 인 글을 쓰면서 입력하려는 내용에 대해 많은 오 탐지를 보게됩니다. 확실히이 두 사전을 인식하고 제안 할 수 있도록 사전에 추가 할 수 있습니다. 당신은 그들이 자동 수정하고 있다는하지 통지를 할 경우, 그들은 문서 또는 최종 버전을 통해 미끄러 수 있습니다 악화, 만약 당신이있는 거 코드를 작성하거나 구성 파일 (예를 들어, 변화 xmin하는 min완전히 그래프 모양을 만들 것 잘못된). 주석도 이상하게 될 수 있습니다 (예 : "라벨 및 nullary 명령"이 "Label and nullify instruction"으로 변경됨). 이로 인해 (a) 명사구에서 명령형으로, (b) 완전히 다른 의미로 변경됩니다. )
  • 둘째, 자동 고침은 짧은 단어에서는 상당히 좋지 않습니다. 내 경험상, 그것은 가장 가까운 단어로 완성되는 경향이 있는데, 예를 들어, 3 글자 단어와 함께, 당신이 의미하는 것과 완전히 다를 수 있습니다. 당신이 입력 하지만 실수로 fo 를 입력 하는 것을 원한다면 , 그것은 당신이 원하는 것이 아니라 거의 수정되지 않을 것입니다 ! 다시 말하지만, 이것은 커서 개정판에서 포착하기 어려울 수 있습니다.

이를 염두에두고 귀하의 실제 목표는 인쇄상의 오류를 신속하게 인식하고 수정할 수있는 것입니다.

이를 위해 다음과 같은 매핑을 사용합니다.

" 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>

본문을 입력 할 때 강조 표시 설정에 따라 철자가 틀린 단어에 밑줄이 표시됩니다. 단어가 상대적으로 길고 단순한 오타 인 것을 알면 spell아마도 올바르게 수정 할 것이라고 생각할 수 있으므로 <C-L>입력하고 계속 입력하십시오. 더 짧은 단어이거나 잘못 될 것으로 예상되면 <C-K>직접 눌러 조정할 수 있습니다 . 마지막으로 spell예기치 않게 잘못된 것을 수정하면로 실행 취소 마커를 설정 <C-G>u했으므로 <Esc>ucW수동으로 변경할 수 있습니다. 이는 대부분의 경우 매우 빠른 워크 플로를 만듭니다.


모든 단어를 자동으로 수정 하는 것이 좋습니다 .
Rich

2

우연히, 나는 이것을 정확하게하는 플러그인을 작성했습니다. Vim You, Autocorrect 라고합니다 !

설치 한 후에는 :EnableAutocorrect버퍼에 입력 하여 입력 하면 wchargin의 scaremongering 이 거의 없다는 것을 곧 알게 될 것 입니다.


wchargin의 답변에 대한 귀하의 의견이 무례한 것으로 표시되었습니다. "Poppycock!" 플래그를 해제했습니다. 별거 아니고 그냥 참고하십시오.
Martin Tournoij

@MartinTournoij 괜찮아. 레딧에 많은 사람들 이 농담을하지 않았다 . :) (그렇지만 감사합니다.)
Rich

Mr Rich 어떤 패키지를 설치하고 입력할지 : EnableAutoCorrect 이해하지 못함
MP Creations

@MPCreations 플러그인 관리자를 사용하십니까?
Rich

@MPCreations 아마에 대한 답변을 살펴 가지고 vi.stackexchange.com/questions/613/...을 당신이 플러그인을 설치하는 방법을 모르는 경우
리치
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.