Script do Vim com Tcl: incompatibilidade de codificação

0

Eu estou tentando escrever um plugin para o Vim usando o Tcl como o idioma do backend. Eu escrevi e testei a maior parte do código e parece funcionar bem, exceto por um obstáculo que não consigo superar: codificação.

Gostaria de saber se alguém aqui está disposto a fazer um teste.

Crie ~ / .vim / plugin / tcltest.tcl com estas linhas:

proc tcl.test   {}  {
    array set CURSOR [[set ::vim::current(window)] cursor]
    lassign "$CURSOR(row) $CURSOR(column)" CR CC
    set bufferCommand [set ::vim::current(buffer)]

    set string "já não bênção"
    puts $string
    $bufferCommand set $CR $string
}

Em seguida, adicione essas linhas a ~ / .vimrc:

if has("tcl")
    tclfile ~/.vim/plugin/tcltest.tcl
endif
inoremap  ?   ^[:tcl tcl.test<CR>

Agora, reinicie o Vim com um novo documento, entre no modo Inserir e pressione '?'

Duas coisas devem acontecer:

1) a string "já não bênção" deve ser exibida na área de mensagens

2) a string "já não bênção" deve ser inserida no buffer

Ele ficará bem na área de mensagens, mas ficará todo truncado no buffer por causa dos caracteres acentuados.

Existe um comando 'encoding' no Tcl e tentei TODAS as codificações possíveis em um loop foreach, mas nenhuma delas funciona.

Estou convencido de que isso é um bug, porque a string deve ser pelo menos a mesma no buffer e na área de mensagem. Mesmo se eu estou fazendo algo errado com o meu código Tcl, o erro deve ser refletido em ambos os lugares.

Alguém pode confirmar (ou não) isso e relatar a versão do Vim e o sistema operacional / plataforma?

    
por movingtype 10.07.2013 / 21:23

0 respostas