Próbuję napisać wtyczkę dla Vima używając Tcl jako języka zaplecza. Napisałem i przetestowałem większość kodu i wygląda na to, że działa dobrze, z wyjątkiem jednej przeszkody, której nie mogę się pozbyć: kodowania.
Zastanawiam się, czy ktoś tutaj jest skłonny do testu.
Utwórz ~ / .vim / plugin / tcltest.tcl tymi liniami:
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
}
Następnie dodaj te linie do ~ / .vimrc:
if has("tcl")
tclfile ~/.vim/plugin/tcltest.tcl
endif
inoremap ? ^[:tcl tcl.test<CR>
Teraz uruchom ponownie Vima nowym dokumentem, przejdź do trybu Wstaw i naciśnij „?”
Dwie rzeczy powinny się zdarzyć:
1) ciąg „já não bênção” powinien być wyświetlany w obszarze wiadomości
2) ciąg „já não bênção” należy wstawić do bufora
Będzie dobrze wyglądać w obszarze wiadomości, ale będzie całkowicie zniekształcony w buforze z powodu znaków akcentowanych.
W Tcl jest komenda 'encoding' i wypróbowałem WSZYSTKIE możliwe kodowania w pętli foreach, ale żadna z nich nie działa.
Jestem przekonany, że jest to błąd, ponieważ łańcuch powinien być przynajmniej taki sam w buforze i obszarze wiadomości. Nawet jeśli robię coś złego z moim kodem Tcl, błąd powinien być odzwierciedlony w obu miejscach.
Czy ktoś może potwierdzić (lub nie) to i zgłosić wersję Vima i system operacyjny / platformę?
źródło