Як можна використовувати перевірку орфографії Vim із "розумними котируваннями"


11

Є "звичайні" прямі цитати:
""

І у вас є кутові "розумні цитати":
"" "

Перевірка правопису Vim працює з "прямими" цитатами, але не з ангелами, тому це вважається "неправильним":
це ... Монті Пітон

Хоча це й не так.

Знімок екрана, якщо ваш шрифт не показує різниці:

введіть тут опис зображення

Як це виправити? Я вважаю за краще, щоб він працював для обох варіантів (це так і є).

Відповіді:


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команду. Вихідні дані включатимуть усі слова, які Vim використовує для поточного spelllang, включаючи вже додані з .addфайлу. Збережіть результат у :spelldumpфайлі та видаліть перші два рядки (інформація про заголовок), а потім використовуйте ті самі команди, що і вище. Ви також можете передати його uniq, щоб видалити повторювані записи. (Не потрібно sort; вихід :spelldumpвже відсортований.)


Чому ви використовуєте 'sяк візерунок? Це не просто пошук 'правильного, також добре? Це буде НЕ вистачати слів , які мають ' в іншому місці (наприклад , як you'd, you'veі т.д.)
Мартін Tournoij

Так, ти маєш рацію. Я відредагував свою відповідь.
wchargin

Дякую :-) Я не був впевнений, чи зробив це ти з причиною, тому вагався редагувати це сам ...
Мартін Турной

Якщо ви вирішите пройти :mkspell!маршрут, ви також можете відфільтрувати слова, призначені для невідповідних регіонів.
Аарон Массі

1

На сьогоднішній день ви можете просто завантажити та скласти новий файл заклинання для VIM. Цитати Unicode були додані до поточної версії англійського словника.

Кроки на основі цієї статті :

  1. Створіть каталог ~/.vim/spellі змініть його. (Шлях є частиною VIM runtimepath.)

  2. Для англійської мови словник можна завантажити тут . (Як варіант: від LibreOffice repo - потрібні .dicі .affфайли, і файли.)

    Примітка. Для кращих результатів я рекомендую отримати en_US та en_GB. en_GB словник можна знайти в репортажі LibreOffice.

  3. Розпакуйте файл:

    unzip -x hunspell-en_US-2017.01.22.zip
    

    Архів повинен принаймні містити ці файли: en_US.affі en_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. Принаймні так, як це працювало на мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.