Como se adiciona uma palavra contendo uma barra ao arquivo de dicionário de ortografia do vim?

4

Eu estou tentando fazer:

:spellgood w/o

Recebo uma mensagem de erro dizendo

Sinalizadores não reconhecidos na linha ~ / .vim / spell / pt.utf-8.add 16

Eu tentei o seguinte sem sucesso:

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

Eu também tentei selecionar visualmente a palavra em questão e bater zg. Mesmo erro.

Como faço para que o vim pare de me dizer que não é uma palavra ruim?

Adicionando o para o arquivo de mágica ou capitalizando w / o que / S W obras, mas essas opções me deixam triste.

Atualizar

Adicionei o seguinte como ~ / .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' 

e o seguinte arquivo como ~ / .vim / spell / en_US.dic

1
w\/o

e executamos os seguintes comandos do 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

E ainda não consigo reconhecer o vim w/ocomo uma boa palavra.

kzh
fonte
A razão pela qual a adição oao arquivo funciona é porque você já adicionou wao arquivo ortográfico.
FDinoff
@FDinoff Eu entendo isso, mas o que eu estava tentando dizer é que adicionar w e o separadamente é uma solução inaceitável.
22413 kzh
Concordo que adicionar os dois seria estranho.
FDinoff

Respostas:

4

De :help spell

Nota: na linha 5 a 7 caracteres não-palavra são usados. Você pode incluir qualquer caractere em uma palavra. Ao verificar o texto, uma palavra ainda corresponde apenas quando aparece com um caractere que não seja uma palavra antes e depois dela. Para Myspell, uma palavra que comece com um caractere que não seja uma palavra provavelmente não funcionará.

Na linha 12, a palavra "TCP / IP" é definida. Como a barra tem um significado especial, a vírgula é usada. Isso é definido com o item SLASH no arquivo de afixo, consulte spell-SLASH |. Observe que, sem esse item SLASH, a palavra será "TCP, IP".

Acima, ele define algumas palavras personalizadas, sendo o TCP / IP um deles. Portanto, você só precisa usar em ,vez de /neste caso.

ou seja, use w,o

Editar

Como você aponta, eu estava apontando para a documentação sobre .dicarquivos, que em minha experiência limitada são mais comuns. No .dicarquivo, você pode usar sua solução de w\/o(consulte :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.
nerdwaller
fonte
Então, o que você está me dizendo é que eu deveria ter melhor o RTFM.
kzh
Isso não está funcionando para mim. Entro no comando :spellgood w,oe os we e o são destacados em vermelho. Agora :help spell-SLASH, ele diz "a barra é usada no arquivo .dic". Eu não estou usando um .dicarquivo. :spellgoodadiciona a palavra ao meu ~/.vim/spell/en.utf-8.addarquivo. Eles são do mesmo tipo de arquivo? Você tentou sua sugestão e viu se funciona?
24513 kzh
Portanto, parece que existem dois tipos de arquivos diferentes: spell-wordlist e spell-dic. Eu estava tentando usar a lista de palavras, sua resposta usa dic. Não tenho idéia de como usar o dic, mas estou pesquisando novamente.
kzh
Venho pesquisando o manual, mas não consigo encontrar como criar um arquivo .dic. Vejo várias referências, mas não vejo instruções como para onde vai. Onde você tem o seu * .dic?
kzh 24/07/2013
Atualizei minha pergunta, sua resposta ainda parece ser um impedimento.
Kzh
1

Você está quase pronto, você está apenas cometendo um pequeno erro.

Você precisa compilar o dicionário primeiro, antes de movê-lo para ~/.vim/spell, o formato correto é em .splvez de .aff.

Encontrei um artigo muito bom sobre como você deve instalar / criar um arquivo de ortografia. Estou usando a lista de palavras que o autor do artigo estava apontando, no entanto, as páginas e os links da wiki foram alterados, portanto o link para ela está abaixo.

Aqui você pode encontrar o dicionário en_US / lista de palavras.
http://downloads.sourceforge.net/wordlist/hunspell-en_US-7.1-0.zip

EDITAR
Não vi sua edição no início, então descarte as informações acima - mas se você usar a lista de palavras, desde que ela funcione. :)

Dominik Hadl
fonte
Você já tentou com a palavra 'w / o'? Funcionou? Vou tentar substituir :mkspell mine en_US.affcom :mkspell mine en_USquando eu chegar em casa. Obrigado.
kzh