私はUbuntu 16.04を使用しています。私はSublime Text 3を使用し、C++プログラムをコンパイルして端末で実行することができます。 以下はスクリプトです。Sublime Text 3 - 端末にC++プログラム(パスにスペースが含まれています)をコンパイルして実行します。
{
"cmd": ["g++", "$file", "-o", "${file_path}/${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++, source.cxx, source.cpp",
"variants":
[
{
"name": "RunInShell",
"shell": true,
"cmd": ["gnome-terminal -e 'bash -c \"${file_path}/${file_base_name};echo; echo Press ENTER to continue; read line;exit; exec bash\"'"]
}
]
}
しかし、Cのパスが++プログラムは、スペース(のような/algorithms/Search in Rotated Sorted Array
)が含まれ、スクリプトが動作しません!
bash: /media/algorithms/Search: No such file or directory
は、RunInShellを使用しているときに端末に表示されます。
スクリプトを修正しようとしています(一重引用符を挿入するなど)。
"cmd": ["gnome-terminal -e 'bash -c \"'${file_path}/${file_base_name}';echo; echo Press ENTER to continue; read line;exit; exec bash\"'"]
しかし、それは動作しません。
私はスクリプトをうまく機能させるように修正する方法を知りました。
おそらく、 '$ {file_path}/$ {file_base_name}'の部分を引用する必要があります。 –
あなたの考えは正しいですが、この部分の周りの追加引用符は正面引用符と一致しています。したがって、動作しません。 – luckcul