我想要一个可以一直起作用的键盘快捷键“查找下一个”和“查找上一个”(或者“搜索下一个”和“搜索上一个”,或者“向前重复搜索”和“向后重复搜索”或者其他任何你想叫它的名字)。
快捷键F3和Shift+F3仅在光标位于搜索栏内时才有效。快捷键Ctrl+ Shift+ F(“重复搜索”)仅在一个方向上有效,但我经常想返回上一个出现的位置。所以这两个对我来说都不起作用。
没有“搜索上一个”命令,但我希望定义一个,以及一个实际的“搜索下一个”来配合它,作为宏并将一个键绑定到这些宏。似乎可行。我试过了录制宏围绕对“重复搜索”的调用,它设置了一些参数并调用.uno:RepeatSearch
,但我不知道如何让它朝特定的方向发展,如果可能的话。我还尝试录制一个围绕按下搜索栏中的 ⇩ 按钮的宏,但这对搜索字符串进行了硬编码,我不知道如何让它使用上一次搜索的参数。
我如何通过宏或其他方式将键绑定到“查找下一个”和“查找上一个”?我至少在 Linux 上的 LibreOffice 4.2.8.2 中需要这个。
答案1
使用.uno:ExecuteSearch
(假设这是录音机给您的),但不要使用硬编码的搜索字符串,而是输入如下值:
Global SearchString
Sub doSearch
SearchString = InputBox("Search string:", "Search", "")
' Put the .uno:ExecuteSearch code here.
End Sub
然后更改硬编码的搜索字符串以使用此变量:
args1(11).Name = "SearchItem.SearchString"
args1(11).Value = SearchString
现在,对于重复搜索,创建两个额外的宏,每个方向一个。设置为 true 或 false。使用我们之前存储的 SearchString 变量,"SearchItem.Backward"
而不是其他的。InputBox