시스템 호출 및 "?"를 사용한 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를 제거했습니다.)

관련 정보