问题描述
好的,所以在 VSCode 中,当您使用左括号时,它会自动使用右括号。相反,我希望这是尖括号。我该怎么做?例如:
按:<
输出:<>
提前致谢!
编辑:我将澄清这一点。我在 Tkinter 文本小部件中执行此操作。所以按 <
将插入一个 >
。 Soory 因为缺乏清晰度。
解决方法
一个非常简单的解决方案是将一个函数绑定到 <KeyRelease>
,因为它会在默认绑定实际将字符插入小部件后触发。或者,您可以绑定到 <KeyPress>
并管理插入起始原始字符及其结束字符。
让我们从定义一个字典开始,它定义了哪些字符具有匹配的字符。在这种情况下,为了简单起见,我们将只使用 {} 和 :
matched_pairs = {"{": "}","<": ">"}
接下来,让我们定义一个函数来检查事件,看看它是否是我们字典中的字符。如果我们找到匹配的字符,我们会做两件事:插入匹配的字符,然后将插入点移回一个,使插入字符位于字符对之间。
def maybe_insert_matching_pair(event):
matching = matched_pairs.get(event.char,None)
if matching:
event.widget.insert("insert",matching)
event.widget.mark_set("insert","insert-1c")
最后,让我们将此函数绑定到每个按键,尽管您也可以只将它绑定到您知道具有匹配对的键。
the_text_widget.bind('<KeyRelease>',maybe_insert_matching_pair)