Using Windows Subsystem for Linux (WSL) from Sublime Text
On WSL 2 the suggested solution doesn't work. Here is a solution to execute on a WSL 2 target a script edited in Sublime Text on Windows. Create a bash-wsl.sublime-build
file:
{
"shell_cmd": "bash -c \"wslpath '${file}'\" | bash -s",
"shell": true,
}
In WSL2, the best possible way according to me is using the below sublime-build file.
- You have to create a new build system in the Sublime Text with the following code.
(Tools -> Build System -> New Build System...
)
{
"shell_cmd": "ubuntu run \"g++ `wslpath '${file}'` && ./a.out<inp.in>out.in \" ",
"shell":true,
"working_dir":"$file_path",
"selector":"$file_name"
}
This code will complile the .cpp code and use inp.in and out.in as input and output files respectively (
Optional, if you don't want that, then replace ./a.out<inp.in>out.in with ./a.out
). The output will be shown in the Sublime's Build Results panel.When you want to use this Build System, select it in the
Tools -> Build System
list, then hitCtrl + B
.
You have to copy the
C:\Windows\System32\bash.exe
file to theC:\Windows\SysWOW64\
directory. Required because of the WoW64 file system redirection (Thanks Martin!)Then you have to create a new build system in the Sublime Text with the following code. (
Tools -> Build System -> New Build System...
){ "cmd" : ["bash", "-c", "gcc ${file_name} -o ${file_base_name} && ./${file_base_name}"], "shell": true, "working_dir": "${file_path}", }
This code will complile the .c code and than run it. The output will be shown in the Sublime's Build Results panel.
When you want to use this Build System, select it in the
Tools -> Build System
list, then hitCtrl + B
.
You can customize the command I put there, the main thing is that you can run Linux commands using bash -c "CommandsYouWantToRun"