我正在尝试使用 Tcl 作为后端语言为 Vim 编写插件。我已经编写并测试了大部分代码,除了一个我似乎无法克服的障碍:编码,它似乎运行良好。
我想知道这里是否有人愿意接受测试。
使用以下行创建 ~/.vim/plugin/tcltest.tcl:
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
}
然后将以下行添加到 ~/.vimrc:
if has("tcl")
tclfile ~/.vim/plugin/tcltest.tcl
endif
inoremap ? ^[:tcl tcl.test<CR>
现在使用新文档重新启动 Vim,进入插入模式并按“?”
应该发生两件事:
1) 消息区域应显示字符串“já não bênção”
2)字符串“já não bênção”应插入缓冲区
它在消息区域中看起来很好,但由于重音字符,它在缓冲区中将全部乱码。
Tcl 中有一个“编码”命令,我已经在 foreach 循环中尝试了所有可能的编码,但都不起作用。
我确信这是一个错误,因为字符串至少在缓冲区和消息区域中应该是相同的。即使我的 Tcl 代码出了问题,错误也应该在两个地方都反映出来。
有人可以确认(或不确认)这一点并报告 Vim 版本和操作系统/平台吗?