emacs.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sun, 02 Aug 2009 14:24:07 +0300
changeset 181 4202927c15ac
parent 86 72175e4fc069
child 182 5e9ea846a8c3
permissions -rw-r--r--
Text based WWW browser for emacs.

-*- mode: outline -*-

* How debug ini file?

When your InitFile has a bug, or when you load external files that cause
errors, the bug is often hard to find, because the Emacs Lisp reader does not
know about line numbers and files – it just knows an error happened, and
that’s it.

** Binary Search.

Select half of the file in a region, and M-x eval-region. Depending on whether
that causes the error or not, split this half or the other half again, and
repeat.

** Elisp.

 - Use a keyboard macro that moves forward one expression (sexp) and evaluates
   it.
 - Try C-x check-parens.
 - Set (setq debug-on-error t).

** CLI.

  $ emacs --no-init-file --no-site-file --debug-init

** Simplified Binary Search.

Add (error “No error until here”) in the middle of your file. If you get the
error “No error until here” when reloading the file, move the expression
towards the back of the file, otherwise towards the front of the file.

* Using edebug.

The main entry point is ‘M-x edebug-defun’ (also on ‘C-u C-M-x’). Use it
instead of `C-x C-e’ or ‘C-M-x’ to evaluate a ‘defun’ and instrument it for
debugging.

You can disable edebug on a function by evaluating the function again using
‘C-M-x’.

* How debug func?

Use M-x debug-on-entry and M-x cancel-debug-on-entry to control
which functions will enter the debugger when called.

When next time that function called automatically loaded debug-mode.

* WWW.

** Text based WWW browser.

  http://en.wikipedia.org/wiki/W3m
  http://emacs-w3m.namazu.org/
  http://www.gnu.org/software/w3/