1

I'm using Spacemacs, and my org-mode file contains an org-babel block of Makefile code, which I want to "tangle" so it becomes part of the source code while remaining in sync with the documentation. All of this is working, except when I auto-indent the org-mode file, the tabs inside my makefile source code block get replaced with spaces.

Spaces aren't valid indentation in makefiles, but I may accidentally use gg=G at some point, so I would like to tell emacs to not replace those tab characters.

This behavior persists when I set org-src-preserve-indentation to t in the file, so I don't know what else to do.

I already found this but my question is about auto-indenting the org-mode file itself, not exporting to another format.

# -*- org-src-preserve-indentation: t -*-
* some header
** another header

   #+begin_src makefile :tangle src/Makefile :mkdirp yes :exports code
all: people

main.o: main.c
    gcc -g -c -o main.o main.c

linked_list.o: linked_list.c
    gcc -g -c -o linked_list.o linked_list.c

clean:
    rm -f people *.o

people: main.o linked_list.o
    gcc -g -o people linked_list.o main.o

test: people
    ./people
   #+end_src
Alex Shroyer
  • 627
  • 4
  • 12

1 Answers1

1

Based on suggestions from the spacemacs issue pages [1,2], I arrived at the following configuration that so far solves my issue completely:

(setq org-src-fontify-natively t
      org-src-preserve-indentation t
      evil-indent-convert-tabs nil
      org-src-tab-acts-natively nil)

Alex Shroyer
  • 627
  • 4
  • 12