4

Я пытаюсь сделать:

:spellgood w/o

Я получаю сообщение об ошибке, говорящее

Нераспознанные флаги в строке ~/.vim/spell/en.utf-8.add 16

Я попытался следующее безрезультатно:

:spellgood w\/o
:spellgood w//o
:spellgood "w/o"
:spellgood 'w/o'

Я также попытался визуально выбрать слово и нажать z g. Та же ошибка

Как я могу получить ВИМ прекратить говорить мне , что ж / о плохое слово?

Добавление о к файлу заклинания или прописные буквы ж / о до W работ / O, но эти варианты делают меня грустными.

Обновить

Я добавил следующее как ~/.vim/spell/en_US.aff

SET ISO8859-1
KEY qwertyuiop|asdfghjkl|zxcvbnm
TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'-
NOSUGGEST !

# ordinal numbers (1st, 2nd, 3th, 11th) and decads (0s, 10s, 1990s)
COMPOUNDMIN 1
# only in compounds: 1th, 2th, 3th
ONLYINCOMPOUND c
# compound rules:
# 1. [0-9]*1[0-9]th (10th, 11th, 12th, 56714th, etc.)
# 2. [0-9]*[02-9](1st|2nd|3rd|[4-9]th) (21st, 22nd, 123rd, 1234th, etc.)
COMPOUNDRULE 2
COMPOUNDRULE n*1t
COMPOUNDRULE n*mp
WORDCHARS 0123456789' 

и следующий файл как ~/.vim/spell/en_US.dic

1
w\/o

и выполнил следующие команды vim:

:cd ~/.vim/spell
:mkspell mine en_US.aff
:set spelllang+=mine
:spellinfo
file: ~/.vim/spell/en.utf-8.spl
file: ~/.vim/spell/mine.utf-8.spl
file: ~/.vim/spell/en.utf-8.add.spl

И я до сих пор не могу получить ВИМ признать w/o как хорошее слово.

2 ответа2

4

От :help spell

Примечание: в строке от 5 до 7 используются несловные символы. Вы можете включить любой символ в слово. При проверке текста слово по-прежнему совпадает только тогда, когда оно появляется с несловарным символом до и после него. Для Myspell слово, начинающееся с несловесного символа, вероятно, не будет работать.

В строке 12 определено слово «TCP /IP». Поскольку слеш имеет особое значение, вместо него используется запятая. Это определяется с помощью элемента SLASH в файле аффикса, см. | Spell-SLASH |. Обратите внимание, что без этого элемента SLASH слово будет «TCP, IP».

Выше он определяет некоторые пользовательские слова, TCP/IP является одним из них. Таким образом , вы должны просто нужно , а / в этом случае.

то есть используйте w,o

редактировать

Как вы указали, я указывал на документацию о файлах .dic , которые в моем ограниченном опыте встречаются чаще. В файле .dic вы можете использовать свое решение w\/o (см . :help spell-SLASH)

WORDS WITH A SLASH                                      *spell-SLASH*

The slash is used in the .dic file to separate the basic word from the
affix letters and other flags.  Unfortunately, this means you cannot
use a slash in a word.  Thus "TCP/IP" is not a word but "TCP with the
flags "IP".  To include a slash in the word put a backslash before it:
"TCP\/IP".  In the rare case you want to use a backslash inside a word
you need to use two backslashes. Any other use of the backslash is
reserved for future expansion.
1

Вы почти закончили, вы просто делаете небольшую ошибку.

Вы должны сначала скомпилировать словарь, прежде чем перемещать его в ~/.vim/spell , правильный формат - .spl вместо .aff .

Я нашел действительно хорошую статью о том, как вы должны установить / создать файл заклинания. Я использую список слов, на который указывал автор статьи, однако вики-страницы и ссылки перепутались, поэтому ссылка на них ниже.

Здесь вы можете найти словарь / словарь en_US.
http://downloads.sourceforge.net/wordlist/hunspell-en_US-7.1-0.zip

РЕДАКТИРОВАТЬ
Сначала я не видел ваши правки, поэтому откажитесь от информации выше - но если вы используете список слов при условии, что он работает. :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .