Here is a very specific tip for doing literate programming with org-mode:<p>Usually you put a code block like this in the .org file and generate the actual source file with M-x org-babel-tangle.<p><pre><code> #+begin_src emacs-lisp :tangle "init.el"
(setq make-backup-files nil)
#+end_src
</code></pre>
The file name doesn't have to be a string constant, you can also call an Elisp function: (the org-prefix is recommended or you will have issues with HTML export)<p><pre><code> #+begin_src emacs-lisp :tangle (org-my-tangle)
(setq make-backup-files nil)
#+end_src
</code></pre>
The function could look like this: ("no" means don't tangle this block)<p><pre><code> (defun org-my-tangle ()
(if my-flag
"init.el"
"no"))
</code></pre>
Or like this: (a more complex example using named, optional parameters)<p><pre><code> (defun org-my-tangle (&rest args)
(let ((file (or (plist-get args :file) "init.el"))
(sys (plist-get args :sys)))
(if (or (null sys)
(eq sys system-type))
file
"no")))
</code></pre>
This will tangle to init.el on any system:<p><pre><code> #+begin_src emacs-lisp :tangle (org-my-tangle)
(setq make-backup-files nil)
#+end_src
</code></pre>
This will tangle to init.el on Linux:<p><pre><code> #+begin_src emacs-lisp :tangle (org-my-tangle :sys 'gnu/linux)
(setq make-backup-files nil)
#+end_src
</code></pre>
This will tangle to foo.el on Windows:<p><pre><code> #+begin_src emacs-lisp :tangle (org-my-tangle :file "foo.el" :sys 'windows-nt)
(setq make-backup-files nil)
#+end_src
</code></pre>
I use this approach for example to generate different Emacs configurations for different platforms and use cases (private, work, ...) all from a single org file.
Incremental gains.<p>Get the basics, then follow your nose to the features you want to try. Before you know it you'll be writing your own stuff and sharing it.<p>The community is the best around.
Uncommonly useful: I have a file with two functions that I want to not just see side-by-side, but with a diff.<p>`C-x 4 c' runs the command clone-indirect-buffer-other-window
Now you can narrow both buffers to the two different functions (mark and C-x n n) and do M-x ediff-buffers to get a diff<p>See also
<a href="https://karthinks.com/software/batteries-included-with-emacs/#indirect-buffers--m-x-make-indirect-buffer" rel="nofollow">https://karthinks.com/software/batteries-included-with-emacs...</a><p>Also, rectangles:
<a href="https://karthinks.com/software/more-batteries-included-with-emacs/#easier-rectangle-editing--m-x-cua-selection-mode" rel="nofollow">https://karthinks.com/software/more-batteries-included-with-...</a>