-
Notifications
You must be signed in to change notification settings - Fork 2
/
README
186 lines (157 loc) · 8.41 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
The EliEmacs Environment
========================
This environment started as a small hack to make life easier for myself,
then it was used by some more people, so I continued working on it,
improving things until I got a good version. When Emacs 21 came out, I
finally got to rewrite the whole thing in a more reasonable way, and
also make it work with XEmacs too, but support for Emacs 19 is gone.
Then came Emacs 22, and another major overhaul was done. This time,
only v22 was supported -- easier to just keep the previous environment
as-is to be used with older versions. The current version is now well beyond
Emacs 24, meaning less things to do still.
The version that you use is displayed after Emacs finishes initializing.
The latest version can be found at
https://github.com/elibarzilay/eliemacs
To use this environment, simply load the eliemacs.elc file in your
.emacs, for example, my .emacs file has:
(load "~eli/EliEmacs/eliemacs")
On a Windows machine, you might use something like:
(load "c:/EliEmacs/eliemacs")
All questions regarding my environment in specific or Emacs in general
should go to: Eli Barzilay <eli@barzilay.org>.
Installing:
-----------
The whole thing works on any platform, as long as you have GNU Emacs
version 24.5. Here is what you need to do:
1. Open EliEmacs.tgz in an appropriate place (using tar+gunzip, or
winzip).
2. Edit your ".emacs" file so it loads "eliemacs" as above. On a
Windows machine, the file can also be called "_emacs", and it should
be placed in a home directory -- which is the value of the
environment variable "HOME".
Note: the following is mostly outdated!!
Customizing:
------------
The .emacs file contains a simple load command for the new environment
file which loads up everything in EliEmacs. You can set up things
either before or after doing this. There are some variables that can
customize the way EliEmacs sets things up (so they should be set before
loading it). See the QuickRef for more variables.
Files:
------
There are many files now, all in EliEmacs. You don't need everything
but it's useful to see what I have there -- read "eliemacs.el" to learn
about them. The following is a list of things that you can delete if
you copy it to your machine (either NTEmacs or Emacs on Linux should
work fine) according to your space limitations, least to most important
(roughly):
1. The "extras" directory contains extra packages -- you can safely
remove all source files (.el) and the compiled code if you don't use
that package. It contains some subdirectories containing big
packages that can be removed if unused too.
2. The "include" directory holds files that are compiled into the single
"eliemacs.elc" file.
2. ".el" files in the "include" directories are compiled into
"eliemacs.elc" so it is safe to throw them away. Even the sources in
"EliEmacs" itself can be removed.
3. If you're really short in space, you could get along with
"eliemacs.elc" and nothing else.
Features:
---------
This is a very brief list. I need to get more info here. (Many of
these features come from Emacs, in many cases they're things that I had
before they were included.)
1. QuickRef access with `C-h e'.
2. A single elc file that you can easily move between accounts and
machines, some more stuff is external but not strictly needed.
3. Lots of sensible key and mouse bindings. Heavy usage of function
keys, and otherwise keep most standard keys the same.
4. Works with FSF Emacs v24.5.
5. Easy customization variables for colors etc (see QuickRef).
6. Some functions to make life simpler for writing ELisp code (e.g,
define-keys).
7. An easy function to sort a whole buffer.
8. Backspace erases indentation when appropriate.
9. A convenient function to save and kill the current buffer (C-f10).
10. Easy function to toggle line truncating with horizontal scrolling
and word-wrapping (with visual movement) (C-S-f12).
11. Functions for negative transposes (C-S-t, M-S-t, M-C-S-t).
12. Convenient buffer and window navigation (S-tab and C-tab).
13. A sensible join-line function (M-j).
14. An intelligent fill-paragraph/region or toggle refill-mode (M-q).
15. Ability to define a buffer-local key rather than mode-local (C-c b)
with a fuction to undo these bindings (C-c B).
16. A function that compares the current buffer with the recent one
(M-S-c).
17. Smart insertion of paired characters - parens, brackets, braces,
angles, quotes, stars etc. (M-\(, M-\[, M-\{, M-<, M-\", M-* etc).
18. Convenient and smart line-comment toggling (C-;).
19. A local variable that can be set to hide the local-variable section
(hide-local-variable-section).
20. Counter keys that insert a counter value and increase it (M-esc *,
M-esc =, M-esc +), good for keyboard macros.
21. A key that allows to send any characted directly to a running
process (M-q, in comint).
22. Some sensible defaults for NTEmacs.
23. Initialization of window properties, which makes color, font etc
settings possible from ELisp rather than XDefaults, registry or
whatever.
24. A lot of sensible default variable settings that took years to
collect.
25. Settings to make the minibuffer resize when needed.
26. A facility to make all your backup files go into a single directoy,
plus easy settings for no backups, or super-safety mode.
27. Using a very customized `bs' for convenient buffer switching (C-f1).
28. Make history for minibuffer entries unique so you can save more.
29. Make shell-command complete filenames the smart way.
30. Beter minibuffer history searches (C-up/down, M-up/down).
31. Some electric chars when reading filenames ("/", "~", "\\", ":").
32. Improved mode-line display (truncate some info).
33. Solution for C-h problems in remote ttys - C-h is normal help, but
when hit twice without ever using backspace it'll rebind itself to
backspace.
34. Convenient keys for saving marks (C-M-kp...), when used more than
once save window/frame conf as well, and jumping to a mark with
(C-kp...).
35. Convenient macro key definition (M-z, M-S-z for local), and saving
(C-M-f12) in addition to standard editing (C-x C-k). Can even hack
mouse clicks to apply a macro key.
36. Improved scrolling commands that leave the cursor at the same place,
and make it possible to scroll back to exactly the last position.
37. A convenient fuction to create color faces-on-demand, allow `M-g o'
to read and use these on-demand specs.
38. Functions to set the color of a region or all matches of a regular
expression (for programs, not interactive).
39. Use a sophisticated paren-highlight package (mic-paren) with a
simple paren-hightlight-mode toggle (C-\().
40. Allow any colors in `M-g M-f' and `M-g M-b'.
41. Attempt to set sensible default colors for font-lock.
42. Ability to interactively add regexps to highlight with font-lock and
specify a color (C-S-a and C-S-r to remove).
43. A smart tab key command for mail/news messages that moves between
header fields and the message body.
44. Enable abbrev mode for interactive expansion of mail aliases.
45. Dynamic word completion that tries to complete based on the current
buffer contents (M-/).
46. Good completion configuration, also enabled in shell buffers.
47. Enable automatic de/compression for compressed files.
48. Make buffer names unique using their directory name.
49. Make auto-fill-mode use only one line's context, and make refilling
smarter (respect quoting, numbered items, bullet-like things etc).
50. Various fixes for things I haven't had the time to nag the Emacs
maintainers enough.
51. Automatically revert a buffer that has been modified outside, but
allow undoing to the previous version (not in `super-safe' mode).
52. Hack the smart completion mode so it can do the same trick for paths
(expand `/u/l/b/gp' to `/usr/local/bin/gphoto').
53. Save and restore the active `desktop' - buffers that are open, and
various input histories. If escape is used at the logo screen (or
-fast was given on the command line), don't load previous buffers.
54. A lot of nice stuff in the extras directory all optional. These
include: my calculator (standard part of v.21), mode-based
compilation (C-f9), maze draing (C-x f2), big-font for banners, vm
(great emailer).
55. Finally, a beautiful logo (that you cannot get rid of, unless you
look at the sources).
56. A responsive author that will be happy to make more things
customizable.