#title PLUG Emacs Apps Presentation Presenter | Michael Olson Web site | http://www.mwolson.org/ This presentation will cover the various applications that can be run from within Emacs. * What is Emacs? To quote the Emacs Manual: Emacs is the extensible, customizable, self-documenting real-time display editor. Emacs is also: an operating system that happens to edit text **really well**. ** What are its basic features? Why should you use Emacs instead of Notepad or GNotepad? - Syntax highlighting and coloring (Alt+x global-font-lock-mode, ENTER). - A helpful tutorial (Control+h, T). - Inline help (Example: Control+h, f, what-page, ENTER). - A manual reader (Control+h, i). And my favorite feature: - A built-in programming language called Emacs Lisp. This programming language is older than C, but still used by many people today! With it, all kinds of applications can be made that run from within Emacs. * Basic Emacs terminology buffer :: Place in memory where an opened file is stored. These don't necessarily have to have a file associated with them, however. In that case, a buffer would act like a temporary file. mode :: Emacs operates in several "modes", the most prevalent of which is Text mode. Having different modes allows Emacs to colorize files and map keystrokes depending on what kind of file you are editing. key-binding :: The sequence of keys that you have to press in order to perform an action. Emacs can have prefix keys, which means you hit the keys, release them, and then hit something else to complete an action. The way we refer to key sequences in Emacs is probably a little different than what you're used to. In the previous node, I wrote the keys in a way that looks familiar. Here's what they would look like in the Emacs documentation. Familiar notation || Emacs notation Alt+x global-font-lock-mode, ENTER | M-x global-font-lock-mode RET Control+h, T | C-h T Control+h, f, what-page, ENTER | C-h f what-page RET Control+h, i | C-h i The reason that Alt becomes "M-" is rather esoteric, but has to do with the fact that keyboards used to have a Meta key rather than an Alt key when it was first made. Emacs is *old*. * Applications There are 2 kinds of software programs that you can be made for Emacs: helper programs and standalone programs. ** Helper programs Helper programs are Emacs Lisp programs that extend other Emacs modes, but are not considered modes themselves. auto-fill :: Automatically breaks up long lines as you type. footnote :: Allows footnotes to be inserted in a document. It puts a numeric place-holder in the text, like "=[1]=". flyspell :: Provides as-you-type spell-checking. These all come with Emacs. ** Standalone programs Standalone programs are those that have their own mode. The following are available separately. Program || Description || URL AUCTeX | Make it easier to write TeX files | http://www.gnu.org/software/auctex/ BBDB | Keep track of people - useful for contact information | http://bbdb.sourceforge.net/ Emacspeak | Audio desktop for the vision-impaired | http://emacspeak.sourceforge.net/ EMMS | Listen to music and manage playlists | http://www.gnu.org/software/emms/ ERC | Modular, extensible IRC Client | http://www.emacswiki.org/cgi-bin/wiki/ERC Rcirc | "Just works" IRC client | http://www.emacswiki.org/cgi-bin/wiki/rcirc Jabber | Jabber client | http://intellectronica.net/emacs-jabber/ Gnus | Read email and news, thorough, expert-level | http://www.gnus.org/ MH-E | An easy-to-use, yet featureful, Mail reader | http://mh-e.sourceforge.net/ Muse | Publish documents | http://www.mwolson.org/projects/EmacsMuse.html Planner | Plan your life | http://www.emacswiki.org/cgi-bin/wiki/PlannerMode w3m | Browse the web | http://emacs-w3m.namazu.org/ Xtla | Revision control helper | http://wiki.gnuarch.org/xtla The following come with Emacs. Program || Description Appt | Get reminders when appointments are near Calc | Featureful RPN calculator Calendar | Show the events of the month Diary | Keep track of appointments Dired | File manager ** Featured software *** Gnus Read email, news, RSS, and anything else you can think of. A bit hard to get working. Features include: - Spam filtering - Sorting email according to rules - Organizing email and news into a Topical view - Scoring articles and hiding uninteresting ones automatically - Can render HTML email - Message threads - Handles a large amount of email and news backends, like IMAP and POP *** ERC Full-featured IRC client. Features include: - Modular design - Autocomplete nicknames and commands - Spell-check messages - Channel-tracking: shows which channels have new messages - Highlight friends and fools - Ignore complete fools - Autojoin channels - Logging - Auto-truncate long channel buffers - Auto-identify to Nickserv - Timestamps - Convert smileys to icons - Translate morse code - Psychoanalyze other channel members - Play chess with other ERC users - Easy to add new custom commands When combined with Bitlbee (http://www.bitlbee.org/), an AIM, Jabber, MSN, ICQ, and Yahoo to IRC gateway, it can even be used to send messages to buddies from other chat networks. The =#PurdueLUG= channel on freenode has a bot called =plugbot= that runs on a dedicated ERC session, with the help of the ErBot add-on software for ERC (http://www.emacswiki.org/cgi-bin/wiki/ErBot). *** Muse Emacs Muse is an authoring and publishing environment for Emacs. It simplifies the process of writings documents and publishing them to various output formats. Muse uses a very simple Wiki-like format as input. Muse consists of two main parts: an enhanced text-mode for authoring documents and navigating within Muse projects, and a set of publishing styles for generating different kinds of output. I maintain it. A full manual is available in several formats. - PDF: http://www.mwolson.org/static/doc/muse.pdf - HTML (single file): http://www.mwolson.org/static/doc/muse.html - HTML (multiple files): http://www.mwolson.org/static/doc/muse/ Formats: :: - Blosxom - DocBook - Groff - HTML - Info - LaTeX - PDF - RDF (RSS 1.0) - RSS 2.0 - Texinfo - XHTML - XML Possible uses: :: - Technical documentation - Web pages (such as this site) - [[ArchTutorial][Tutorials]] - Poems - Compilations - [[/blog/cooking][Recipes]] - Blog entries - Journals - Citations to other sources - Wiki-like knowledge bases - Plan pages (in conjunction with PlannerMode) - Class notes Features: :: - Muse is extensible and has a modular codebase. - You can organize your work into projects. - With the optional =muse-wiki= module, it is easy to make hyperlinks between projects. - Muse works with your favorite helper modes, like outline mode, fill, and flyspell. - Muse can import LaTeX documents with the included =muse-convert.el= module. *** Planner Planner is a Personal Information Manager (PIM). You can use it to manage your tasks, schedule, and notes. Manual: http://sacha.free.net.ph/notebook/doc/dev/planner/html/planner-el.html Core features: - Associate tasks with webpages or files - Take free-form notes that are rendered by Muse Additional features: - Appt integration (appointment reminder) - Accomplishments for the week - BBDB integration (contacts manager) - Calendar integration - Bookmarks - Cyclic tasks - Deadlines - Diary integration - ERC integration - iCal support - Publish notes to RSS and RDF - Overview of tasks - See how long you spend on tasks *** Xtla Emacs interface to the GNU Arch (http://wiki.gnuarch.org) revision control system. Interfaces: - Manage "bookmarks" to projects - Associate "partners" with a project - Browse registered archives and projects The following are available when editing a file that is associated with an Arch project. - See what changed in the project. You can selectively revert unwanted changes. - Make a log message. From there, the changes can be committed. * Q and A At this time, feel free to ask questions about Emacs or its add-ons. I will demo other Emacs applications on request if I have them.