Adicionando / exibindo caracteres especiais no Vim

0

Atualmente trabalho em um projeto em que preciso escrever os caracteres Unicode ɛ e ħ , que acabei de adicionar ao meu teclado.

Funciona muito bem em quase todos os lugares, até mesmo no prompt de comando, exceto pelo Vim, que exibe um ponto de interrogação ? em vez de ɛ e h em vez de ħ .

A codificação é definida como utf-8 e usar :digraphs não ajuda muito, pois, mesmo lá, muitos caracteres são mostrados simplesmente como ? .

O que posso fazer para corrigir isso?

EDITAR
Eu uso a fonte Consolas, que tem os dois caracteres acima mencionados.

    
por ahmed 24.05.2014 / 20:26

2 respostas

0

A partir das questões de comentário, mesmo que a pergunta indique que "a codificação está definida para utf-8", parece que a codificação do Vim NÃO está definida para utf-8. Ainda é latin1 (ISO-8859-1). Isso significa que o Vim não sabe como representar esses caracteres especiais na memória, nem os salva em um arquivo.

Para o Vim escrever corretamente caracteres "especiais", ele precisa de duas coisas:

  1. Uma configuração de 'codificação' que pode representar esse caractere na memória, geralmente utf-8
  2. Um valor vazio ou uma configuração que pode representar esse caractere em disco para "codificação de arquivo". Geralmente isso também é utf-8 ou vazio.

Para corretamente ler um arquivo contendo esses caracteres, o Vim novamente precisa dessas duas coisas. O Vim pode detectar automaticamente o valor adequado para 'codificação de arquivo', se a opção 'codificações de arquivo' estiver definida corretamente.

'fileencodings' é uma lista separada por vírgula que diz ao Vim (em ordem) quais codificações tentar. "ucs-bom" como nos comentários em sua pergunta detectará unicode, mas somente se houver uma BOM (marca de ordem de byte). Além disso, como a "codificação" do seu Vim ainda é "latin1", não faria bem a você de qualquer maneira se o Vim DID detectasse unicode.

Observe que tanto a 'codificação' quanto as 'configurações de arquivo' devem estar muito próximas da parte superior do seu .vimrc, antes de qualquer mapeamento, menu, opção de string ou configuração de registro. Caso contrário, o texto existente nessas áreas será mal interpretado pelo Vim.

Veja a ajuda para cada uma destas opções, e a página wiki em configurando o Vim para Unicode , para detalhes.

Se o Vim não detectar corretamente a codificação em alguns arquivos, mesmo com as configurações corretas, você poderá:

  1. Definir manualmente, como :e ++enc=utf-8 myfile.txt
  2. Instale um plug-in do Vim que detectará automaticamente a codificação de arquivos
por 27.05.2014 / 17:38
0

Eu trabalho no debian e tive o problema que você descreveu. Para consertá-lo, você precisa ter certeza de que possui o código de idioma requerido instalado em seu sistema operacional no debian bash, isto é como corrigi-lo:

  1. verifique sua localidade

    locale -a
    

    no bash isso relatou: localidade: Não é possível definir LC_VARIABLE como localidade padrão: nenhum arquivo ou diretório

  2. gere o código do idioma requerido para que o passo 1 não se queixe mais.

    você pode fazer isso com o comando locale-gen se souber qual localidade precisa

    sudo locale-gen "en_US.UTF-8"
    

    ou apenas reconfigure o locale emitindo o seguinte comando

    sudo dpkg-reconfigure locales
    

Se feito corretamente : digraphs deve mostrar os caracteres apropriados agora no vim

link
link

    
por 06.11.2017 / 18:28