当 TexStudio 中触发宏时用选定的文本替换占位符

当 TexStudio 中触发宏时用选定的文本替换占位符

我想编写一个宏,$当我按下键时,它将选定的文本放在周围,$就像 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)。

相关内容