Precisa digitar um símbolo especial no vi

1

Eu quero digitar ½ no modo vi, mas ele vem com caractere extra ½ . Eu estou pressionando ALT+0189 . Eu pesquisei muito sobre o mesmo, mas não consegui.

Por favor, informe.

    
por api1411 18.10.2016 / 14:50

2 respostas

3

Se a entrada através do terminal não funcionar (parece haver uma incompatibilidade de codificação), você pode voltar aos métodos internos do Vim para inserir caracteres especiais.

dígrafos

Um confortável é :help digraphs . A tabela em :help digraph-table lista esse caractere específico:

½   12  0xbd    189 VULGAR FRACTION ONE HALF

Para inserir, digite Ctrl + K , seguido por 1 e 2 .

entrada por número

Isso é descrito em :help i_CTRL-V_digit . Com o número decimal, digite Ctrl + V , 1 8 9 . Você também pode usar a representação hexadecimal ( xbd ).

    
por 18.10.2016 / 15:20
2

I want to type ½ in vi mode but it is coming with extra character ½.

Não.

O que está acontecendo é que o seu terminal está enviando esse caractere codificado como UTF-8. O caractere é U + 00BD e sua codificação UTF-8 é a seqüência de dois caracteres de 8 bits cujos valores hexadecimais são C2 BD .

O vim acha que você não está digitando em UTF-8. Ele pensa que você digitou dois caracteres de 8 bits, primeiro caractere U + 00C2 e, em seguida, caractere U + 00BD. Por isso, está inserindo esses dois caracteres.

Fazer o vim acreditar que você está usando o UTF-8 é uma viagem ao complexo mundo das localidades e codificações. Atualmente, o vim acredita que seu terminal gera a entrada Latin-1 (ISO 8859-1). Você precisa do vim para acreditar que seu terminal gera uma entrada UTF-8.

Além disso: também é aparente, do que está enterrado em comentários para outra resposta, que seu texto de ajuda também não está sendo tratado como UTF-8, indicando que ele não está trabalhando internamente em UTF-8, provavelmente porque seu variáveis de ambiente ( LANG , LC_ALL e assim por diante) não estão especificando uma localidade UTF-8. Para que o vim manipule adequadamente a entrada UTF-8, é melhor que ele esteja usando UTF-8 internamente, como sua codificação geral.

Algo como o

O comando
:set termencoding=utf-8 encoding=utf-8
é provavelmente o melhor curso de ação. Mas você também pode se ajustar a variáveis de ambiente.     
por 18.10.2016 / 21:08