ฉันจะใช้การตรวจการสะกดของ Vim ด้วย 'คำพูดอัจฉริยะ' ได้อย่างไร


11

มีคำพูดตรง "ปกติ":
'"

และคุณมีมุมมอง "คำพูดอัจฉริยะ":
'' "

การตรวจสอบการสะกดคำของ Vim ใช้ได้กับเครื่องหมายคำพูด "ตรง" แต่ไม่ใช่เครื่องหมายคำพูดเทวดาดังนั้นนี่จึงถือว่าเป็น "ผิด":
มัน ... Monty Python

แม้ว่ามันจะไม่ใช่

ภาพหน้าจอในกรณีที่แบบอักษรของคุณไม่แสดงความแตกต่าง:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันจะแก้ไขสิ่งนี้ได้อย่างไร ฉันต้องการให้มันทำงานกับทั้งสองสายพันธุ์ (มันและมัน)

คำตอบ:


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

ปัญหาคือว่าคำเหล่านี้ทั้งหมดที่มีเครื่องหมายอะโพสโทรฟีอยู่ในไฟล์พจนานุกรมของคุณ ดังนั้นหากคุณโอเคกับการแก้ไขพจนานุกรมการสะกดคำพูดเหลวไหลของคุณให้ทำดังนี้:

$ 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 มีการเพิ่มเครื่องหมายคำพูด Unicode ให้กับพจนานุกรมภาษาอังกฤษรุ่นปัจจุบัน

ขั้นตอนอ้างอิงจากบทความนี้ :

  1. สร้างไดเรกทอรี~/.vim/spellและเปลี่ยนเป็น (เส้นทางเป็นส่วนหนึ่งของ VIM runtimepath)

  2. สำหรับภาษาอังกฤษ, พจนานุกรมสามารถดาวน์โหลดได้ที่นี่ (หรืออีกทางหนึ่ง: จากLibreOffice repo - คุณต้องการทั้งไฟล์.dicและ.affไฟล์)

    หมายเหตุเพื่อผลลัพธ์ที่ดีกว่าฉันขอแนะนำให้ใช้ทั้ง 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 (ใน~/.vim/spellไดเร็กทอรี) และใน VIM เรียกใช้งานคำสั่ง::mkspell! en en_US

    หรือถ้าคุณดาวน์โหลดไฟล์ en_GB ด้วย: :mkspell! en en_US en_GB

  5. ออกจาก VIM และตรวจสอบไฟล์ในไดเรกทอรีปัจจุบัน ควรมีไฟล์ที่en.utf-8.splสร้างขึ้น

  6. ทำ!

ตอนนี้หลังจากที่คุณเริ่ม VIM และเปิดใช้งานการตรวจสอบการสะกดคำสำหรับภาษาอังกฤษอันดับแรกควรเลือก.splไฟล์ที่สร้างขึ้นใหม่~/.vim/spellซึ่งมีการรองรับคำพูด Unicode อยู่แล้ว อย่างน้อยมันก็ใช้ได้ผลสำหรับฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.