我想编写一个宏,$
当我按下键时,它将选定的文本放在周围,$
就像 TexStudio 对大括号和方括号所做的那样。
到目前为止,我已经尝试过
%SCRIPT
txt = cursor.selectedText()
editor.write("$"+txt+"$")
cursor.clearSelection()
和
$%<math%:multiline%>$
都使用触发器\$
。当我使用键盘快捷键时,这两个宏会用 包围所选文本$
,但当我使用触发器时,它们会将其删除。有人知道如何避免这种情况吗?
答案1
目前,按照您尝试的方式,这是不可能的,因为在执行宏之前选择已被清除。
作为一种解决方法,您可以使用以下脚本
%SCRIPT
text = '$'
if (cursor.hasSelection()) {
text = '$' + cursor.selectedText() + '$'
}
cursor.insertText(text)
并将$
选项指定为快捷方式。 (注意:尝试设置快捷方式时,您可能会得到Shift+$
。在这种情况下,您必须删除组合框中的附加文本,以便只剩$
下 (您可以移动光标并使用Del
/ Backspace
)。