使用 Tcl 编写的 Vim 脚本:编码不匹配

使用 Tcl 编写的 Vim 脚本:编码不匹配

我正在尝试使用 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 版本和操作系统/平台吗?

相关内容