Vim: Codificação (Unicode) no Terminal no Windows
Eu não sei por que, mas este tópico parece estar mal documentado e é coberto por controvérsias, pois ninguém sabe a verdadeira resposta (exceto talvez o Sr. Moolenaar, que raramente responde de qualquer maneira).
Então, basicamente, eu levantei uma discussãoAqui, e foi muito rápido, provavelmente porque não há muitas pessoas usando o Vim no modo terminal no Windows.
Minhas configurações de codificação são as seguintes:
if has('multi_byte')
if empty(&termencoding)
let &termencoding = &encoding
endif
let &encoding = 'utf-8'
let &fileencoding = 'utf-8'
endif
É claro que não tenho problemas em executar com o GVim: posso digitar qualquer caractere e meu patchConsolas
para Powerline funciona muito bem. Os problemas começam quando tento executar o Vim no modo de terminal. eu usoConEmu, um emulador de terminal rico em recursos para o Windows. Ele afirma oficialmente apoiar Unicode fora da caixa. Por exemplo, posso executar o seguinte script de teste:
chcp 65001 & (cmd /c type "%~dpn0.cmd") & pause & goto :EOF
English: texts, web pages and documents
Graves,etc: à á â ã ä å æ ç è é ê ë ì í î ï
Greek: ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο
Arabic: ڠ ڡ ڢ ڣ ڤ ڥ ڦ ڧ ڨ ک ڪ ګ ڬ ڭ ڮ گ
Full width: @ A B C D E F G H I J K L M N O
Romanian: texte, pagini Web şi a documentelor
Vietnamese: văn bản, các trang web và các tài liệu
Russian: тексты, веб-страницы и документы
Japanese: テキスト、Webページや文書
Yiddish: טעקסץ, וועב זייַטלעך און דאָקומענטן
Hindi: पाठ, वेब पृष्ठों और दस्तावेज
Thai: ข้อความ หน้า เว็บ และ เอกสาร
Korean: 텍스트, 웹 페이지 및 문서
Chinese: 文本,網頁和文件
e eu posso ver todos os símbolos corretamente no ConEmu. Sim, o script de teste ativa a página de códigos 65001. Eu já descobri que o Vim não pode trabalhar com a página de códigos do 65001, então isso não parece ser uma opção. A página de código padrão no terminal é 437, e eu também posso digitar algo como o russo no ConEmu com essa página de código padrão, e ela é exibida corretamente.
Lendo através:h termencoding
, Vejo que o Windows usa Unicode por padrão para passar símbolos. Então, eu não entendo porque quando eu digito algo não-ANSI no terminal Vim, eu vejo?
símbolos? Companhia aérea não exibe símbolos extravagantes de patchConsolas
também. Como configurar o verdadeiro Unicode para o terminal Vim no Windows? A propósito,&termencoding
relatórios 437 também.
Alguém poderia, de uma vez por todas, por favor, me explicar é o suporte Unicode para o terminal Vim no Windows lá (e como configurá-lo) ou não?