Next: , Previous: Structure of code blocks, Up: Working With Source Code

14.2 Editing source code

Use C-c ' to edit the current code block. This brings up a language major-mode edit buffer containing the body of the code block. Manually saving this buffer with <C-x C-s> will write the contents back to the Org buffer. You can also set org-edit-src-auto-save-idle-delay to save the base buffer after some idle delay, or org-edit-src-turn-on-auto-save to auto-save this buffer into a separate file using auto-save-mode. Use C-c ' again to exit.

The org-src-mode minor mode will be active in the edit buffer. The following variables can be used to configure the behavior of the edit buffer. See also the customization group org-edit-structure for further configuration options.

If an Emacs major-mode named <lang>-mode exists, where <lang> is the language named in the header line of the code block, then the edit buffer will be placed in that major-mode. This variable can be used to map arbitrary language names to existing major modes.
Controls the way Emacs windows are rearranged when the edit buffer is created.
By default, the value is nil, which means that when code blocks are evaluated during export or tangled, they are re-inserted into the code block, which may replace sequences of spaces with tab characters. When non-nil, whitespace in code blocks will be preserved during export or tangling, exactly as it appears. This variable is especially useful for tangling languages such as Python, in which whitespace indentation in the output is critical.
By default, Org will ask before returning to an open edit buffer. Set this variable to nil to switch without asking.

To turn on native code fontification in the Org buffer, configure the variable org-src-fontify-natively.