我想在 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,因為由於缺少 %,它的行為不符合預期)