]> code.delx.au - gnu-emacs-elpa/blob - README.md
Try linking to the .el files.
[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](./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](./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. This is how the "primary"
46 is chosen.
47
48 The last few things enable a kind of project-focus mode. I often have
49 various shell buffers, each one associated with a project. As I switch
50 which project is currently my primary focus, I use the double universal
51 argument to switch which shell buffer is the default. I can still use the
52 single universal argument to easily switch to any of the shells, but most
53 easily to my current primary.