'스마트 따옴표'와 함께 Vim의 맞춤법 검사를 사용하는 방법


11

"정상적인"따옴표가 있습니다 :
' "

그리고 당신은 각진 "똑똑한 따옴표"가 있습니다 :
'' ""

Vim의 맞춤법 검사는 "직선"따옴표와 함께 작동하지만 따옴표로 묶지 않은 따옴표는 작동하지 않으므로 "잘못된"것으로 간주됩니다.
... Monty Python 's

그렇지 않더라도.

글꼴에 차이가 표시되지 않는 경우 스크린 샷 :

여기에 이미지 설명을 입력하십시오

이 문제를 어떻게 해결합니까? 나는 두 가지 변형 모두에서 작동하도록하고 싶습니다.

답변:


7
$ grep "'" /usr/share/dict/words | wc -l
26226
$ grep -i python /usr/share/dict/words
Python
Python's
python
python's
pythons

문제는 아포스트로피가있는 이러한 모든 단어가 실제로 사전 파일에 있다는 것입니다. 따라서 vim 철자 사전을 수정해도 괜찮다면 다음과 같이하십시오.

$ grep "'" /usr/share/dict/words | sed "s/'/’/g" >> ~/.vim/spell/en.utf-8.add

이것은 것입니다

  • grep시스템 사전에서 아포스트로피 ( ') 를 포함하는 모든 단어를 찾습니다 .
  • sed직선 따옴표를 스마트 따옴표로 변경하려면 (즉 s/'/’/g, 첫 번째 따옴표는 직선이고 두 번째는 똑똑합니다); 과
  • 언어 사전에 추가하십시오 (언어가 무엇이든 대체하십시오).

.spl파일을 Vim에서 수행 할 수 있는 파일 로 다시 컴파일해야합니다 .

:mkspell! ~/.vim/spell/en.utf-8.add

Vim이 시스템 사전 대신 시작 위치로 사용하는 실제 철자 파일을 사용하려면 :spelldump명령을 사용할 수 있습니다 . 출력은 포함 모든 빔이 현재에 사용하는 단어 spelllang, 를 포함하여 이미에서 추가하는 .add파일을. 결과를 :spelldump파일에 저장하고 처음 두 줄 (헤더 정보)을 제거한 다음 위와 동일한 명령을 사용하십시오. uniq중복 항목을 제거 하기 위해 파이프를 통해 파이프 할 수도 있습니다 . (필요는 없습니다 sort; 출력 :spelldump은 이미 정렬되어 있습니다.)


's패턴으로 사용합니까? '올바른 검색 뿐만 아니라? 이것은이 단어를 놓칠 것이다 ' 다른 위치 (예 : you'd, you've, 등)
마틴 Tournoij

그렇습니다. 내 답변을 편집했습니다.
wchargin

고마워 :-) 나는 당신이 그 이유 때문에 그것을했는지 확신하지 못해서 직접 편집하는 것을 주저했습니다 ...
Martin Tournoij

:mkspell!경로 를 선택하면 관련이없는 지역을위한 단어를 필터링 할 수도 있습니다.
Aaron Massey

1

현재로서는 VIM 용 새 스펠 파일을 다운로드하여 컴파일 할 수 있습니다. 유니 코드 따옴표는 현재 버전의 영어 사전에 추가되었습니다.

이 기사를 기반으로 한 단계 :

  1. 디렉토리를 작성 ~/.vim/spell하고 변경하십시오. (경로는 VIM의 일부입니다 runtimepath.)

  2. 영어의 경우 사전을 여기에서 다운로드 할 수 있습니다 . (또는 LibreOffice repo에서 - 파일 .dic.aff파일 이 모두 필요 합니다.)

    NB 더 나은 결과를 얻으려면 en_US와 en_GB를 모두 얻는 것이 좋습니다. en_GB 사전은 LibreOffice repo에서 찾을 수 있습니다.

  3. 파일을 압축 해제하십시오 :

    unzip -x hunspell-en_US-2017.01.22.zip
    

    아카이브는 최소한 다음 파일을 포함해야합니다. en_US.affen_US.dic.

  4. ~/.vim/spell디렉토리 에서 VIM을 시작하고 VIM에서 다음 명령을 실행하십시오.:mkspell! en en_US

    또는 en_GB 파일도 다운로드 한 경우 : :mkspell! en en_US en_GB

  5. VIM을 종료하고 현재 디렉토리의 파일을 확인하십시오. 파일이 en.utf-8.spl생성 되어야합니다 .

  6. 끝난!

이제 VIM을 시작하고 영어 맞춤법 검사를 활성화 한 후에는 먼저 유니 코드 따옴표에 대한 지원이 포함 된 새로 작성된 .spl파일을 선택해야 ~/.vim/spell합니다. 적어도 그것이 나를 위해 일한 방식.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.