]> code.delx.au - gnu-emacs-elpa/blob - README.md
Quash typoo
[gnu-emacs-elpa] / README.md
1 EmacsUtils
2 ==========
3
4 Handy Emacs utilities
5
6 I've been using Emacs since it was publicly available (1985 or 1986), and have contributed some items which are included with Emacs, notably the [Allout outliner](http://myriadicity.net/software-and-systems/craft/emacs-allout), [icomplete mode](http://www.emacswiki.org/emacs/IcompleteMode), and python-mode's [pdbtrack functionality](http://myriadicity.net/software-and-systems/craft/crafty-hacks#section-1). Like many long-time Emacs users, I've got some personal custom code, some of which I wouldn't do without. Here's some that I particularly like, and think might be useful to others - I hope to include more, as time allows.
7
8 * **pdbtrack.el**
9 * Add sensitivity to comint shells so the source file lines are automatically
10 presented in a separate window when the Python PDB debugger steps to them.
11
12 This is derived from the pdb tracking code, which I originally wrote, and
13 which has been included in (various) official Emacs Python modes. I wanted
14 a version that I could more easily tweak and maintain, independently of
15 the python-mode code.
16
17 It would eventually be nice to generalize this code, to work for things
18 like the node.js debugger. We'll see if I (or anyone) ever gets around to
19 that.
20
21 * **poptoshell.el**
22 * I use the emacs shell a lot. This code enables me to streamline and
23 extend how I can a single one, or multiple ones in a project-oriented
24 fashion:
25
26 * It simplifies getting to the input prompt, by doing the right thing when
27 I hit the key I have bound to pop-to-shell (I use [M-space], ie
28 meta-space:
29 * If the cursor is in a buffer that has no subprocess, pop the window to
30 the primary shell buffer
31 * If there is no shell buffer, start one.
32 * If the cursor is in a buffer which has a process, move the cursor to
33 the process input point.
34 * With a universal argument, even if the current buffer has a subprocess,
35 solicit the name of the target shell buffer - defaulting to the current
36 main one - and pop to that.
37 * This enables starting an alternate shell buffer, for instance, and/or
38 switching between the main and alternate ones.
39 * (The expected name is without the surrounding asterisks, and
40 completion is done against existing shell buffer names stripped of
41 their asterisks.)
42 * With a doubled universal arg, prompt for the target shell buffer and
43 set the provided name as the primary shell buffer.
44 The last few things enable a kind of project-focus mode. I often have
45 various shell buffers, each one associated with a project. As I switch
46 which project is currently my primary focus, I use the double universal
47 argument to switch which shell buffer is the default. I can still use the
48 single universal argument to easily switch to any of the shells, but most
49 easily to my current primary.