Build Emacs from release tarball
[emacsbook.git] / book.org
blobf81f4982bdc29bcf7df141bce94e47c848b9d5aa
3 * Goals and non-Goals
5 This book will teach you
7 1. To use Emacs.
8 2. To customize Emacs to your specific needs.
9 3. Place Emacs in a modern context.
11 This book will *not* 
13 1. Teach you to program in Emacs lisp
14 2. Document third-party libraries which don't ship with Emacs or GNU
15    ELPA.
17 * Audience
19 If you are new to Emacs then this book is for you.  You don't have to
20 be a programmer to benefit from this book.
22 * Prerequisites
24 You need to be a touch typist to use Emacs efficiently.
26 * Installing Emacs
28 The latest stable release of Emacs as on the day of writing is Emacs
29 24.3.
31 You can download the pre-build binaries from [[http://ftp.gnu.org/gnu/emacs/][GNU FTP Archives]].  If you
32 are on Windows, you can download the binaries from [[http://ftp.gnu.org/gnu/emacs/windows/][Windows
33 subdirectory]].
35 * Self help
37 * Basic customization
39 * Text editing
41 # centering text M-o M-s
42 # tabs and spaces
43 # margins and justification
44 # line spacing
45 # filling a paragraph
46 # indentation
48 # how to insert a tab
49 # tab stops
51 # marking
52 # deleting
54 # change case
55 # capitalization
57 # ascii diagrams
59 # org struct mode
61 # view mode
62 # reverting
64 # counting lines, words etc
66 You can goto specific line with 
68 |----------------------+---------|
69 | Action               | Keys    |
70 | <20>                 |         |
71 |----------------------+---------|
72 | Goto a line          | M-g M-g |
73 |----------------------+---------|
76 You can move around your buffer very quickly using the following key
77 bindings.
79 |----------------------+------|
80 | Action               | Keys |
81 | <20>                 |      |
82 |----------------------+------|
83 | Line beginning       | C-a  |
84 | Line end             | C-e  |
85 |----------------------+------|
86 | Next line            | C-n  |
87 | Prev line            | C-p  |
88 |----------------------+------|
89 | Scroll forward       | C-v  |
90 | Scroll back          | M-v  |
91 |----------------------+------|
93 You can move around your buffer very quickly using the following key
94 bindings.
96 |----------------------+-------|
97 | Action               | Keys  |
98 | <20>                 |       |
99 |----------------------+-------|
100 | Next word            | M-f   |
101 | Previous word        | M-b   |
102 |----------------------+-------|
103 | Sentence beginning   | M-a   |
104 | Sentence end         | M-e   |
105 |----------------------+-------|
106 | Next paragraph       | M-}   |
107 | Prev paragraph       | M-{   |
108 |----------------------+-------|
109 | Next page            | C-x ] |
110 | Prev page            | C-x [ |
111 |----------------------+-------|
112 | Buffer beginning     | M-<   |
113 | Buffer end           | M->   |
114 |----------------------+-------|
115                                    
116 ** Statistics
118 |----------------------+------|
119 | Action               | Keys |
120 | <20>                 |      |
121 |----------------------+------|
122 | Counting words       | M-=  |
123 |----------------------+------|
125 ** Spellchecking
127 ** Dictionary and Thesaurus
129 * Install additional packages
131 * Games
133 * Reporting bugs
135 You can submit a bug report with
137 #+BEGIN_EXAMPLE
138   M-x report-emacs-bug RET
139 #+END_EXAMPLE
141 * Emacs Community
143 The Emacs project has many [[https://savannah.gnu.org/mail/?group%3Demacs][mailing lists]].  
145 You can browse the archives online
147 1. [[http://lists.gnu.org/archive/html/info-gnu-emacs][Emacs news archive]]
148 2. [[http://lists.gnu.org/archive/html/help-gnu-emacs][Emacs users archive]]
149 3. [[http://lists.gnu.org/archive/html/emacs-devel][Emacs developers archive]]
150 4. [[http://lists.gnu.org/archive/html/bug-gnu-emacs][Emacs bugs archive]]
151 5. [[http://lists.gnu.org/archive/html/gnu-emacs-sources][Emacs sources archive]]
153 You may wish to subscribe to one or more of these mailing lists.
155 1. [[http://lists.gnu.org/mailman/listinfo/info-gnu-emacs][Emacs news]]
156 2. [[http://lists.gnu.org/mailman/listinfo/help-gnu-emacs][Emacs users]]
157 3. [[http://lists.gnu.org/mailman/listinfo/emacs-devel][Emacs developers]]
158 4. [[http://lists.gnu.org/mailman/listinfo/bug-gnu-emacs][Emacs bugs]]
159 5. [[http://lists.gnu.org/mailman/listinfo/gnu-emacs-sources][Emacs sources]]
163 See [[http://www.gnu.org/software/emacs/][Emacs project page]] for more information.
165 [[http://www.emacswiki.org/][Emacswiki]]
167 IRC: #emacs @ irc.freenode.net 
169 * Contributing to Emacs
171 Emacs sources are maintained using Bazaar version control system.  You
172 can obtain the version controlled source tree with
174 #+BEGIN_EXAMPLE
175   bzr branch bzr://bzr.savannah.gnu.org/emacs/trunk
176 #+END_EXAMPLE
178 You can also browse the source repository for one-off purposes using
179 the following URLs: [[http://bzr.savannah.gnu.org/lh/emacs/trunk/files][Bzr Loggerhead]] or [[http://git.savannah.gnu.org/cgit/emacs.git/log/][Cgit web interface]].
181 If you are a Git user, you can checkout the source tree using git as
182 follows
184 #+BEGIN_EXAMPLE
185   git clone git://git.savannah.gnu.org/emacs.git
186 #+END_EXAMPLE
188 See [[http://savannah.gnu.org/maintenance/UsingGit][for more information on using git]].
190 * Building Emacs
193 #+begin_example
194   kjambunathan@debian-6:~$ sudo apt-get build-dep emacs
195   Reading package lists... Done
196   Building dependency tree       
197   Reading state information... Done
198   Picking 'emacs23' as source package instead of 'emacs'
199   The following NEW packages will be installed:
200     autoconf automake autopoint autotools-dev debhelper diffstat exiv2 gettext
201     html2text imagemagick intltool-debian libasound2-dev libatk1.0-dev
202     libcairo2-dev libcdt4 libdatrie-dev libdbus-1-dev libdjvulibre-text
203     libdjvulibre21 libexiv2-9 libexpat1-dev libfontconfig1-dev libfreetype6-dev
204     libgconf2-dev libgif-dev libglib2.0-dev libgpm-dev libgraph4 libgtk2.0-dev
205     libgvc5 libice-dev libidl-dev libilmbase6 libjpeg62-dev liblockfile-dev
206     liblqr-1-0 libm17n-dev libmagickcore3 libmagickcore3-extra libmagickwand3
207     libmail-sendmail-perl libncurses5-dev libnetpbm10 libopenexr6 liborbit2-dev
208     libotf-dev libpango1.0-dev libpathplan4 libpixman-1-dev libpng12-dev
209     libpthread-stubs0 libpthread-stubs0-dev librsvg2-dev libsm-dev
210     libsys-hostname-long-perl libthai-dev libtiff4-dev libtiffxx0c2
211     libunistring0 libwmf0.2-7 libx11-dev libxau-dev libxaw7-dev
212     libxcb-render-util0-dev libxcb-render0-dev libxcb1-dev libxcomposite-dev
213     libxcursor-dev libxdamage-dev libxdmcp-dev libxdot4 libxext-dev
214     libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxml2-dev libxml2-utils
215     libxmu-dev libxmu-headers libxpm-dev libxrandr-dev libxrender-dev libxt-dev
216     netpbm orbit2 pkg-config po-debconf quilt sharutils ufraw-batch
217     x11proto-composite-dev x11proto-core-dev x11proto-damage-dev
218     x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev
219     x11proto-render-dev x11proto-xext-dev x11proto-xinerama-dev xaw3dg
220     xaw3dg-dev xtrans-dev xutils-dev zlib1g-dev
221   The following packages will be upgraded:
222     libdbus-1-3 libexpat1 libtiff4 libxml2
223   4 upgraded, 106 newly installed, 0 to remove and 103 not upgraded.
224   Need to get 33.9 MB of archives.
225   After this operation, 105 MB of additional disk space will be used.
226 #+end_example
229 #+begin_example
230   kjambunathan@debian-6:~/src$ tar xf emacs-24.3.tar
231 #+end_example
233 #+begin_example
234   Configured for `i686-pc-linux-gnu'.
235   
236     Where should the build process find the source code?    /home/kjambunathan/src/emacs-24.3
237     What compiler should emacs be built with?               gcc -std=gnu99 -g3 -O2
238     Should Emacs use the GNU version of malloc?             yes
239         (Using Doug Lea's new malloc from the GNU C Library.)
240     Should Emacs use a relocating allocator for buffers?    no
241     Should Emacs use mmap(2) for buffer allocation?         no
242     What window system should Emacs use?                    x11
243     What toolkit should Emacs use?                          GTK2
244     Where do we find X Windows header files?                Standard dirs
245     Where do we find X Windows libraries?                   Standard dirs
246     Does Emacs use -lXaw3d?                                 no
247     Does Emacs use -lXpm?                                   yes
248     Does Emacs use -ljpeg?                                  yes
249     Does Emacs use -ltiff?                                  yes
250     Does Emacs use a gif library?                           yes -lgif
251     Does Emacs use -lpng?                                   yes
252     Does Emacs use -lrsvg-2?                                yes
253     Does Emacs use imagemagick?                             no
254     Does Emacs use -lgpm?                                   yes
255     Does Emacs use -ldbus?                                  yes
256     Does Emacs use -lgconf?                                 yes
257     Does Emacs use GSettings?                               no
258     Does Emacs use -lselinux?                               no
259     Does Emacs use -lgnutls?                                no
260     Does Emacs use -lxml2?                                  yes
261     Does Emacs use -lfreetype?                              yes
262     Does Emacs use -lm17n-flt?                              yes
263     Does Emacs use -lotf?                                   yes
264     Does Emacs use -lxft?                                   yes
265     Does Emacs use toolkit scroll bars?                     yes
266 #+end_example
268 * Building Emacs from sources
270 If you are a developer or a user who is interested in testing out
271 Emacs trunk see [[http://www.emacswiki.org/emacs/BzrForEmacsDevs][instructions at Emacswiki]].
273 #+BEGIN_EXAMPLE
274   apt-get install build-essential
275   apt-get build-dep emacs
276 #+END_EXAMPLE