Emacs
Why Emacs?
It is an expert-user interface.
It requires significant training.
For experts, it is faster and more flexible than any other editor
anywhere.
Don't underestimate the importance of editing speed in creativity,
productivity and quality.
If you don't touch-type - learn now! Your life will be
better for it.
Get it at
http://www.gnu.org/software/emacs/emacs.html
Some important things you can do with it
- Everything available by keyboard
- Can move cursor without moving
hands off home position
- Built in help: tutorial (ctrl-h
t), search (ctrl-h a), describe key (ctrl-h k)
- Use of
alt key for meta
- ctrl-x ctrl-f to open a new file
- ctrl-x ctrl-b to see list of buffers
- ctrl-x b to switch to another buffer by name
- meta-x 'other-window' to switch to other buffer (I map it to meta-o)
- meta-x 'dired' to view and interact with file system. I generally
access this by ctrl-x ctrl-f and open a directory. Especially useful on
windows to see file extension, and get past other Explorer obfuscations.
Press ? within dired to learn more about it.
- Use command name completion within meta-x by pressing spacebar
- meta-x 'shell' to run an interactive shell within emacs. I
almost never use a shell outside of emacs for anything. The ability
to get infinite history, undo, and copy/paste with other buffers is incredibly
powerful
- Use filename completion within the shell by pressing tab
- meta-x 'comint-previous-matching-input-from-input' is a very powerful
mechanism for retrieving previous commands within the shell. I map it to
meta-p. Then use it by typing the first few letters of a previously used
command in the shell, and then typing meta-p cycles through the previous
commands that start with that sequence of letters
- Entirely customizable and extensible with elisp..
Use of TAGS:
- tag a bunch of files related to a project with the command line 'etags
<filenames>'
- Within emacs, start using a tag table with meta-x 'visit-tags-table'
- Search for item within table with meta-x 'tags-search' (I map it to
meta-t)
- Search for next item in tag table with meta-x 'tags-loop-continue'
(I map it to meta-,)
- meta-x 'tags-query-replace' to do query replace all files in tag
table
When editing code:
- tab indents the current line nicely
- meta-x 'c-indent-exp' indents the region enclosed by matching braces
starting at the open brace the cursor is. I map this to meta-ctrl-q
Customizing emacs:
- Put in your .emacs file some simple commands to remap keys of the form:
(global-set-key "\M-o" 'other-window)
- You can base yours on my .emacs
file
Java
Documentation
API docs available
Don't ignore the guide docs and the demos that come with
JDK
And Sun's
online tutorials
Eclipse
A freely available IDE - good interface with support for external JVM's,
but no GUI builder
Also many others available
Style Guidelines
Coding standards significantly increase readability of code by other
people.
Sun's guidelines
The one's I'm most concerned about are:
- Consistent indenting (4 spaces)
- Clear understandable modularization
- Data hiding
- Use of beans to provide access to data
- Naming conventions - lower case variables and methods, capitalized
class names
- Always use braces for code blocks (if, for, while,
etc.)
C#
Visual Studio.NET
The 10,000 lb gorilla. Expensive, but powerful and widely used
Documentation
MSDN -
http://www.msdn.microsoft.com
Visual Studio.NET documentation
QuickStart demos that come with Visual Studio.NET
http://www.gotdotnet.com
Style Guidelines
Microsoft's guidelines
Similar to Java, except that methods are capitalized to distinguish
them from properties. |