Bagaimana saya bisa menggunakan pemeriksaan ejaan Vim dengan 'kutipan pintar'


11

Ada kutipan langsung "normal":
'"

Dan Anda memiliki "kutipan pintar" yang miring:
'' ""

Periksa ejaan Vim bekerja dengan tanda kutip "lurus", tetapi bukan tanda kutip, jadi ini dianggap "salah":
Ini ... Monty Python

Meskipun tidak.

Cuplikan layar, jika font Anda tidak menunjukkan perbedaan:

masukkan deskripsi gambar di sini

Bagaimana cara saya memperbaikinya? Saya lebih suka membuatnya bekerja untuk kedua varian (ini dan itu).

Jawaban:


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

Masalahnya adalah bahwa semua kata dengan tanda kutip ini sebenarnya ada dalam file kamus Anda. Jadi, jika Anda setuju dengan memodifikasi kamus ejaan vim Anda, maka lakukanlah:

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

Ini akan

  • grepuntuk menemukan semua kata dalam kamus sistem Anda yang berisi tanda kutip ( ');
  • seduntuk mengubah kutipan langsung menjadi kutipan cerdas (di s/'/’/gsitulah kutipan pertama lurus dan yang kedua cerdas); dan
  • tambahkan ke kamus bahasa Anda (ganti dengan apa pun bahasa Anda).

Anda perlu mengkompilasi ulang ini ke .splfile, yang dapat Anda lakukan dari Vim:

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

Jika Anda ingin menggunakan file ejaan aktual yang Vim gunakan sebagai tempat awal (bukan kamus sistem Anda), Anda bisa menggunakan :spelldumpperintah. Output akan mencakup semua kata yang digunakan Vim untuk saat ini spelllang, termasuk yang sudah ditambahkan dari .addfile. Simpan hasil :spelldumpke file dan hapus dua baris pertama (info header), lalu gunakan perintah yang sama seperti di atas. Anda mungkin juga ingin menyalurkannya uniqjuga, untuk menghapus entri duplikat. (Tidak perlu sort; output :spelldumpsudah diurutkan.)


Mengapa Anda menggunakan 'spola? Bukankah hanya mencari yang 'benar juga? Ini akan kehilangan kata-kata yang memiliki ' di lokasi yang berbeda (seperti you'd, you've, dll)
Martin Tournoij

Yap, kamu benar. Saya sudah mengedit jawaban saya.
wchargin

Terima kasih :-) Saya tidak yakin jika Anda melakukannya dengan alasan, jadi ragu untuk mengeditnya sendiri ...
Martin Tournoij

Jika Anda memilih untuk pergi :mkspell!rute, Anda mungkin juga ingin memfilter kata-kata yang ditujukan untuk wilayah yang tidak relevan.
Aaron Massey

1

Sampai sekarang, Anda cukup mengunduh dan mengkompilasi file mantra baru untuk VIM. Kutipan Unicode ditambahkan ke versi kamus bahasa Inggris saat ini.

Langkah-langkahnya, berdasarkan artikel ini :

  1. Buat direktori ~/.vim/spelldan ubah. (Path adalah bagian dari VIM runtimepath.)

  2. Untuk bahasa Inggris, kamus dapat diunduh di sini . (Atau: dari repre LibreOffice - Anda membutuhkan keduanya .dicdan .afffile.)

    NB Untuk hasil yang lebih baik, saya akan merekomendasikan en_US dan en_GB. kamus en_GB dapat ditemukan di repo LibreOffice.

  3. Buka zip file:

    unzip -x hunspell-en_US-2017.01.22.zip
    

    Arsip setidaknya harus mengandung file-file ini: en_US.affdan en_US.dic.

  4. Mulai VIM (di ~/.vim/spelldirektori) dan di VIM jalankan perintah::mkspell! en en_US

    Atau jika Anda juga mengunduh file en_GB: :mkspell! en en_US en_GB

  5. Keluar dari VIM, dan periksa file di direktori saat ini. Seharusnya ada file yang en.utf-8.spldibuat.

  6. Selesai!

Sekarang, setelah Anda mulai VIM dan mengaktifkan memeriksa ejaan untuk bahasa Inggris, harus pertama memilih yang baru dibuat .splfile dari ~/.vim/spellyang sudah berisi dukungan untuk tanda kutip Unicode. Setidaknya begitulah cara kerjanya bagi saya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.