Emacs as an unbeatable IDE (Integrated Dev. Environment)
Do not feel obliged to use V*s**l C++ to benefit from just a few
Eclispe can be seen as a good alternative to Emacs, but its
approach seems radically different. First, it is limited to a few
languages only, then, the idea is rather offering a complete and
extensive development environment (from conception to testing) on
The approach Emacs uses rather consists in merging all text/code
edition problems together so as to use a common basis of
tools/commands as far as possible, in order to make specialisation
lighter and easier, hence broader.
Once again, the big advantage of emacs against its competitors is the
available degree of customization that its emacs-lisp architecture
allows. It could only be matched by another lisp-based project, and it
is sad to say that Eclispe is still far far behind...
Shell under emacs. M-x shell lets you open a
shell session in an emacs window to test (or compile) your programs
without switching windows. Please notice all emacs functionalities
still apply in the *shell* buffer, making this option valuable in any
Also consider eshell mode (emacs only). Have a look on my
configuration to seek for n-shell, in order to open several shells in
a single emacs session (simple but so cool, though I'm not the author).
Compile project and track errors over files: TODO.
For now, on my config, f9. can just compile current buffer and
display compiler output on another window. f10 can navigate in your
code to match spotted errors. Here, we just scratch the surface ;(
Debug a program with gdb in gdb-mode.
First, please consider this minimal
gdb tutorial that covers what
gdb can make from command-line. The purpose of Emacs
interface is essentially to automatically track the code
lines being executed, which is really tedious in shell mode).
Navigate through current file hierarchy using a graphical tree: M-x
On emacs, OO-Browser and func-menu external packages can also be considered.
Process function, variable and type names in many programming languages: etags
$>etags -t *.c *.h creates a TAGS file indexing your symbols (-t for emacs).
M-x find-tag: drives you directly to tag definition (e.g function
declaration). See also find-tag-other-window. By default, the entry under cursor is proposed. Notice you can use completion as typing tagname.
M-x pop-tag-mark drives you back to your previous location.
M-x list-tags lists all the tags from current project (M-x
visit-tags-table to change project).
M-x tags-search drives you directly to tag occurences in all your
registered files (M-, for next occurence).
M-x tags-query-replace(M-, again for next occurence).
M-x complete-tag (emacs) and M-x tag-complete-symbol
(xemacs) enable completion of word on cursor position looking for
names in current TAGS table.
dabbrev-expand (emacs) and expand-abbrev (xemacs) allow completion of
current word using contents of any opened buffer (very useful for
text, but consider instead tag commands for programming). Several
calls allows you to cycle among propositions.
Last modified: 01 March 2006