Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ctrl+M to run Makefile with Sublime+Linux

I'm currently thinking about switching from Pluma (former gEdit) to Sublime Text. What I have seen so far from Sublime Text is pretty nice.

I currently test Submlime Text 2 and would like it to execute make in the folder of the document that is currently opened when I press Ctrl + M.

Is that possible? How do I do it?

When I currently hit Ctrl + M it does build the LaTeX document I currently view, but it does not use my Makefile. That is bad, because it fails to build my main document which has a more complicated build process.

After setting Tools > Build System > Make it runs make, but not the Makefile of the current documents folder.

I've found this, but it seems to focus on OS X.

like image 859
Martin Thoma Avatar asked Feb 11 '14 18:02

Martin Thoma


1 Answers

This answer was almost what I needed:

Do the following steps to make Sublime Text 2 (ST2) execute make when you hit Ctrl + m under Linux (in my case: Linux Mint, a Debian based distribution):

  1. Get the path of make with which make
  2. Go to your ST2 user config directory
    /home/[Your user name]/.config/sublime-text-2/Packages/User
  3. Insert a file called Make (Linux).sublime-build with the content from below.
  4. Choose Tools > Build System > Make (Linux) in ST2

You might notice that ST2 has a different PATH than you have in your shell. See Sublime Text 2: custom PATH and PYTHONPATH.

Make (Linux).sublime-build

You might have to adjust path to your needs. I've simply put the content of echo $PATH in this field (which is much more than the simple example from below).

{
   "cmd": ["make"],
   "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
   "working_dir": "${project_path:${folder:${file_path}}}",
   "selector": "source.makefile",
   "path": "/usr/bin/:/usr/local/texlive/2013/bin/i386-linux",

    "variants":
    [
      {
        "name": "Clean",
        "cmd": ["make", "clean"]
      },
      {
        "name": "Test",
        "cmd": ["make", "test"]
      }
    ]
}
like image 158
Martin Thoma Avatar answered Sep 20 '22 14:09

Martin Thoma