使用系統呼叫和“?”的 TeXstudio 腳本編寫

使用系統呼叫和“?”的 TeXstudio 腳本編寫

我想在 texstudio 中製作一個簡單的腳本,我可以用它在瀏覽器中搜尋選定的單字。

一切工作正常,除了我無法正確調用查詢命令。

這 ”?”似乎被切斷了。但替換、urlencoding 等都不起作用。

我如何編碼“?”在 URL 中或有一個我可以嘗試的標誌嗎?

我嘗試了 system() 和 buildManager.runCommand(),在這種情況下都執行相同的操作。

%SCRIPT
u=encodeURI("https://ecosia.org/search?q="+cursor.selectedText())
//u=encodeURI("https://ecosia.org/search\?q="+cursor.selectedText())
//u="https://ecosia.org/search\\%3Fq="+cursor.selectedText()
//u="https://ecosia.org/search%3Fq="+cursor.selectedText()
//u="https://ecosia.org/search?q="+cursor.selectedText()
//u="https://ecosia.org/search\?q="+cursor.selectedText()
//buildManager.runCommand("\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\" \""+u+"\"")
system("\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\" \""+u+"\"")

這些是我嘗試過的一些組合......但沒有一個可以按預期工作。日誌中的結果如下所示:

Prozess gestartet: "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "https://ecosia.org/search

任何想法表示讚賞。謝謝

答案1

我自己找到了答案,並將其發布給可能感興趣的人。

當我深入研究 buildmanager.cpp 中的原始碼:

else if (str.at(i) == QChar('?')) {
if (str.at(++i) == QChar('?')) add = "?";

這意味著,當我這樣做時,我的巨集腳本可以工作:

%SCRIPT
u="https://ecosia.org/search??q="+cursor.selectedText()
system("\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\" \""+u+"\"")

注意:“??”變成“?”在系統調用中。 % 和 @ 相同

現在我可以直接搜尋突出顯示的文字。 (我擺脫了 urlencode,因為由於缺少 %,它的行為不符合預期)

相關內容