Download presentation
Presentation is loading. Please wait.
1
One Editor To Rule Them All Dan Berger dberger@cs.ucr.edu Titus Winters titus@cs.ucr.edu
2
Introduction The hacker community has a tradition of treating their favorite text editor with a reverence bordering on religious fanaticism… Editor wars are usually fought between the devottees of Emacs and vi, the most popular editors on Unix. - http://wikipedia.org/wiki/Editor_wars
3
Outline A Brief Emacs history Fundamental Emacs Concepts Basic Commands/Key Chords Using Emacs as an IDE “Nifty” Features Customizing Emacs
4
Emacs: A Brief History Originally written in 1976 by Richard Stallman (scary dude) as a set of Editor MACroS for the TECO editor. Two common strains in the wild: Emacs (the one we’re talking about here) and XEmacs (the one we’re not). If you want to know more: try WikiPedia/wiki/Emacs
5
Fundamental Emacs Ideas Emacs is essentially a lisp interpreter. No – this isn’t an elisp hacking seminar. What’s important is that elisp is Turing complete; That means Emacs is horribly extensible – and can do anything you can express in elisp (see Turing Complete)
6
Terminology A “key chord” is a set of keys pressed together. Text is stored in “buffers” – often, but not always, buffers hold the contents of files. Reading a file into a buffer is called “visiting” the file. Portions of the emacs display are called “windows” Multiple emacs displays are each called a “frame”
7
More Emacs Ideas Emacs does its work by calling elisp functions – which are often bound to key chords. Buffers have associated major and minor editing modes – so the editor can behave differently when you’re editing C/C++ code vs. Python code.
8
Basic Commands (I) Starting emacs: emacs [-nw] [file1 file2 … fileN] emacs will run either in GUI mode (under X) or tty mode (in a terminal, or with the –nw flag) Exiting emacs: C-x C-c Control-”x” Control-”c” M-x save-buffers-kill-emacs Meta (Alt or Esc)-”x” “save-buffers-kill-emacs”
9
Basic Commands (II) Get help: C-h Run a tutorial: C-h t Open (visit) a file: C-x C-f Save a buffer to a file: C-x C-s
10
Mark and Selection Manipulating regions of text is easy – once you understand “the mark” The mark is one end of the region you want to work on – the other end is determined by “the point” – which is the current cursor position. Set the mark: C-spc
11
Manipulating Regions Many emacs commands (can) work on a region of text. Remember – a region is between the mark and the cursor (point). Examples: C-w will “kill” (cut) the selected region Esc-w will copy the selected region C-y “yanks” (pastes) it back M-x ispell-region will spell check the selected region of text.
12
Emacs as an IDE Emacs was written by developers for developers – so it’s not surprising that it makes a pretty good IDE. You can: Write code Navigate code Compile code Debug Code Interface with revision control (CVS)
13
Writing Code Emacs has major modes for just about every language you can imagine. It will perform syntax-aware indentation, can colorize the code, and is generally “aware” of the structure of the code. So you can jump around basic blocks, functions, etc. Each major mode is different – C-h m will describe the current modes.
14
Navigating Code Emacs includes a support program called etags – it builds a cross reference (index) of a set of files, and helps emacs find symbols. Complete use is outside the scope of this talk, but Google can help.
15
Compiling Simple: M-x compile By default emacs will run Make – but you can run any command you want. It will cd into the directory containing the file you were visiting when you invoked the compile. This means that you may have to tell make which Makefile to use, if it’s not in that directory.
16
Debugging GUD – Grand Unified Debugger mode – knows how to interface with many “standard” unix debuggers, including gdb (and dbx) M-x gdb M-x pdb M-x jdb An example is worth a thousand words…
17
CVS Integration Emacs will recognize if a file (directory) is managed by CVS – and give you a set of CVS commands you can perform without leaving the editor including; Checkout a file Commit changes to a file Diff a file against the repository Register a new file with revision control
18
Nifty Features font-lock-mode flyspell-mode M-x ispell-comments-and-strings ediff mode tramp
19
Font-Lock-Mode Provides syntax hi-lighting for languages emacs understands (many). You can customize the colors it uses – and the face (font). Turn it on with: M-x font-lock-mode Colorize your world with: M-x font-lock-fontify-buffer
20
Flyspell-Mode On-the-FLY spell checking. Turn it on with M-x flyspell-mode As you move across text, it get’s spell checked. Errors are marked. If you want to spell check the entire buffer, M-x flyspell-buffer To see suggested spellings, place the point (cursor) on the misspelled word and middle- click (or press Esc-$)
21
M-x ispell-comments Just what it sounds like – it will spell-check your code – paying attention to comments and strings (between quotes).
22
ediff mode diff (the file comparison tool) on steriods. Give emacs two (or three!) files to compare – and it will help you navigate the differences – making it easy to update one file with the changes in another. M-x ediff-files M-x ediff-buffers
23
tramp A tool for opening files that are not local over SSH Any file (anywhere) can be represented as /user@host:path/to/file i.e.: /titus@hill:.html/techsem.html Very low bandwidth – so it’s usable over slow/unreliable links. Not in the standard Emacs package, but should be installed on CS machines “soon.”
24
Tramp (cont.) If you want to install it on a personal machine (Linux or Windows), you can fetch it from: http://savannah.nongnu.org/projects/tramp/
25
Customizing Emacs On startup, emacs reads and evaluates ~/.emacs – which can contain arbitrary elisp code you want executed on startup. My.emacs file (~dberger/.emacs) is world readable – let’s take a quick look at it now… Recent versions of emacs also include a package to help you customize emacs – M-x customize will get you started.
26
Emacs on MS Windows http://www.gnu.org/software/emacs/windows/ The windows portions of Dan’s.emacs file are old – and not “supported.” I haven’t used Windows in years – so I’ve no idea if that config is still needed or functional.
27
Stuff We Didn’t Cover Emacs can be a mail reader, web browser, psychologist, and much, much more. We didn’t cover elisp – the lisp dialect that emacs uses – there’s a good tutorial on-line: http://www.gnu.org/software/emacs/emacs-lisp- intro/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.