]> code.delx.au - gnu-emacs-elpa/blob - README.md
Refine wording and outline format.
[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
10 Add sensitivity to comint shells so the source file lines are automatically
11 presented in a separate window when the Python PDB debugger steps to them.
12
13 This is derived from the pdb tracking code, which I originally wrote, and
14 which has been included in (various) official Emacs Python modes. I wanted
15 a version that I could more easily tweak and maintain, independently of
16 the python-mode code.
17
18 It would eventually be nice to generalize this code, to work for things
19 like the node.js debugger. We'll see if I (or anyone) ever gets around to
20 that.
21
22 * **poptoshell.el**
23
24 I use the emacs shell a lot. This code enables me to streamline and
25 extend how I can a single one, or multiple ones in a project-oriented
26 fashion:
27
28 * It simplifies getting to the input prompt, by doing the right thing when
29 I hit the key I have bound to pop-to-shell (I use [M-space], ie
30 meta-space:
31 * If the cursor is in a buffer that has no subprocess, pop the window to
32 the primary shell buffer
33 * If there is no shell buffer, start one.
34 * If the cursor is in a buffer which has a process, move the cursor to
35 the process input point.
36 * With a universal argument, even if the current buffer has a subprocess,
37 solicit the name of the target shell buffer - defaulting to the currently
38 chosen primary one - and pop to that.
39 * This enables starting an alternate shell buffer, for instance, and/or
40 switching between the main and alternate ones.
41 * (The expected name is without the surrounding asterisks, and
42 completion is done against existing shell buffer names stripped of
43 their asterisks.)
44 * With a doubled universal arg, prompt for the target shell buffer and
45 use the provided name as the ensuing default.
46
47 The last few things enable a kind of project-focus mode. I often have
48 various shell buffers, each one associated with a project. As I switch
49 which project is currently my primary focus, I use the double universal
50 argument to switch which shell buffer is the default. I can still use the
51 single universal argument to easily switch to any of the shells, but most
52 easily to my current primary.