Program development environments
- flex, bison, and lemon
- source level debugging
Emacs (chapter 7 in the Sobell text)
- Emacs is an excellent graphic-based and text-based program development.
Why use Emacs?
- Emacs Lisp is a pleasant programming language. If you like other Lisp-y languages such as the Scheme family (for what it is worth, Racket is one of the more interesting variations in the Scheme familyt), then Emacs also has a lot of support for these (for instance, https://docs.racket-lang.org/guide/Emacs.html)
- It is reasonably efficient.
- Having a full language as its backend, it supports a great number of things, such as a built-in PDF viewer (DocView).
- Most of the verbatim material is taken "verbatim" from the Emacs Tutorial. You can use ctrl-h t to enter this tutorial:
The following commands are useful for viewing
C-v Move forward one screenful
M-v Move backward one screenful
C-l Clear screen and redisplay all the text,
moving the text around the cursor
to the center of the screen.
(That's CONTROL-L, not CONTROL-1.)
More of the tutorial
Previous line, C-p
Backward, C-b .. Current position .. Forward, C-f
Next line, C-n
- You can split your current window vertically with ctrl-x 2.
- You can split your current window horizontally with ctrl-x 3.
- You can jump around windows with ctrl-o. You can even scroll another buffer ctrl-meta-v.
- You can use ctrl-x 1 to remove all other windows except the one that you are using.
- You can list your current buffers with ctrl-x ctrl-b.
- You can use ctrl-o to leap into that new buffer, and then use the "o" key to go directly into the buffer, or the "k" key to mark it for removal (this is only a mark, it doesn't do anything active), and then "x" to execute the marked removals.
- You can use ctrl-x b to switch buffers.
- You can use ctrl-x s to save all modified buffers.
- You can start recording macros in emacs with ctrl-x ( and end them with ctrl-x )
- You can play the current macro with ctrl-x e
- You can given an argument to a function with ctrl-u NUM; giving one to a keyboard macro invocation causes that macro to be called NUM times.