如何使用鼠标中键单击将 tcl 中的变量复制并粘贴到 vi 编辑器中?

问题描述 投票:0回答:1

[proc_selProc.tcl]

proc selProc {str offset count} {
return [string range $str $offset [expr {$offset + $count -1}]]
}

set myVar Hello
selection handle -selection . [list selproc $myVar]
selection own .

工具 > 源代码./proc_selPorc.tcl

然后使用鼠标中键单击将其粘贴到 vi 编辑器中。
一开始效果很好。
[通过 aa.rpt]
你好

但是,当我尝试如下时,我仍然得到“Hello”而不是“AAA”。

set myVar AAA 
selection handle . [list selproc $myVar] 
selection own .

[vi aa.rpt]
你好;#<- not printed "AAA"

我该怎么办?
我尝试了很多方法,但无法解决。

选型明确;选择得到;主要选择等...

linux unix tcl tk-toolkit vi
1个回答
0
投票

奇怪的是,选择处理程序似乎无法更改。 Wish 继续使用您为窗口提供的第一个命令。这对我来说看起来像是一个错误。解决这个问题的一种方法是使用全局变量进行选择,而不是尝试更改处理程序。

proc selProc {offset count} {
    global selection
    return [string range $selection $offset [expr {$offset + $count -1}]]
}

set selection Hello
selection handle . selProc
selection own .
# Middle-click pastes "Hello"
set selection AAA
selection own .
# Middle click pastes "AAA"
© www.soinside.com 2019 - 2024. All rights reserved.