|Tweets by @markusgattol||
Presenting Emacs as an editor is analogous to presenting mathematics
Emacs outshines all other editing software in approximately the same
This is the main page related to GNU Emacs at my website. This page will nonetheless point to some topics about GNU Emacs that I felt should have a dedicated page:
This page is also part of a bigger context called Markus's Scheduling and self-management System. Following pages are considered being part of this context:
Caution: Please be aware that if you do not know GNU Emacs yet... oOOooOooh kid... it might let you do things that might look pretty odd to your environment... However, do not worry... other Emacsers will very well understand you ;-]
This section is in place for several add-on packages to Emacs (e.g. Muse, Planner etc.) I heavily use. It is about things that are common for all of those packages i.e. how to install them, update them, set things up and configure things to fit ones personal needs/likings. However, as times goes by, I might very well put other things into that sections as well... not sure yet (January 2008)...
Muse, Planner, Remember, etc. I am using up-to-date versions of each i.e. I directly checkout from upstream repositories as can be seen below — this way I am always with the latest and greatest...
All my local Emacs source code is under
1 sa@pc1:~$ cd .emacs_misc/libs/ 2 sa@pc1:~/.emacs_misc/libs$ rm -rf planner/ 3 sa@pc1:~/.emacs_misc/libs$ ll 4 total 56K 5 drwxr-xr-x 2 sa sa 4.0K 2007-09-12 17:46 allout 6 drwxr-xr-x 11 sa sa 4.0K 2007-12-07 09:40 bbdb 7 drwxr-xr-x 2 sa sa 4.0K 2007-09-12 17:46 bm+ 8 drwxr-xr-x 2 sa sa 4.0K 2007-02-27 20:23 css 9 drwxr-xr-x 2 sa sa 4.0K 2007-09-12 17:46 htmlize 10 drwxr-xr-x 10 sa sa 4.0K 2008-01-24 09:12 muse 11 drwxr-xr-x 2 sa sa 4.0K 2008-01-07 09:10 pastie 12 drwxr-xr-x 2 sa sa 4.0K 2007-06-23 02:34 pgg 13 drwxr-xr-x 2 sa sa 4.0K 2007-09-12 17:47 ps 14 drwxr-xr-x 4 sa sa 4.0K 2008-01-23 13:54 remember 15 drwxr-xr-x 4 sa sa 4.0K 2007-09-12 12:36 scm 16 drwxr-xr-x 2 sa sa 4.0K 2007-09-12 17:47 unbound 17 drwxr-xr-x 9 sa sa 4.0K 2008-01-21 15:58 w3m 18 drwxr-xr-x 2 sa sa 4.0K 2007-10-27 01:19 wtf 19 sa@pc1:~/.emacs_misc/libs$ time git clone git://repo.or.cz/planner-el.git planner 20 Initialized empty Git repository in /home/sa/.emacs_misc/libs/planner/.git/ 21 remote: Counting objects: 831, done. 22 remote: Compressing objects: 100% (215/215), done. 23 Indexing 831 objects... 24 remote: Total 831 (delta 610), reused 831 (delta 610) 25 100% (831/831) done 26 Resolving 610 deltas... 27 100% (610/610) done 28 29 real 0m2.871s 30 user 0m0.808s 31 sys 0m0.112s 32 sa@pc1:~/.emacs_misc/libs$
From time to time, or in case I need the just made bugfix from the
repository, I update particular, several or all of my local upstream
repositories. One might take a look at my setup in my
Set up and Configure
Can all be found in my
(add-to-list 'load-path (expand-file-name "~/.emacs_misc/libs/planner"))
and further on — but that has actually nothing to do with the installation and setup — the detailed configuration for each add-on package.
Same as for Planner, just use
Same as for Planner, just use
Emacs is, aside from many other things, an IDE (Integrated Development Environment) if we want it to be...
Setups as described below are for those which are about to dive into the depths of some mid to large scale software development project, using one or more major programming languages like for example C, Java, Python, Ada, PHP, C++, etc.
Those who just want to edit some shell script, do email, edit and view photos, organize themselves, play music, write some article/thesis, chat, etc. simply do not need to unleash all the IDE (Integrated Development Environment) powers with GNU Emacs.
Aside from best practices, I will provide information about what I think makes up for the best <some programming language> + Emacs experience possible. However, before we get to the beef, I find it important to make some common statements:
This subsection is about best practices when it comes to Python programming with GNU Emacs.
Specific Python Preparations
Well, we do exactly as I said above i.e. we install a few packages if not installed already which is what I already did as can be seen.
sa@wks:~$ type dpl dpl is aliased to `dpkg -l' sa@wks:~$ dpl emacs-snap* | grep ^ii ii emacs-snapshot 1:20081129-1 The GNU Emacs editor (development snapshot) ii emacs-snapshot-bin-common 1:20081129-1 The GNU Emacs editor's shared, architecture ii emacs-snapshot-common 1:20081129-1 The GNU Emacs editor's common infrastructure ii emacs-snapshot-el 1:20081129-1 GNU Emacs LISP (.el) files ii emacs-snapshot-gtk 1:20081129-1 The GNU Emacs editor (transitional package) sa@wks:~$ dpl ecb* | grep ^ii ii ecb 2.32-1 code browser for Emacs supporting several languages sa@wks:~$ dpl pymacs* | grep ^ii ii pymacs 0.23-1.1 interface between Emacs Lisp and Python sa@wks:~$ dpl python-rop* | grep ^ii ii python-rope 0.8.4-3 Python refactoring library ii python-ropemacs 0.6c2-3 Emacs mode for Python refactoring sa@wks:~$
Those are the packages which I think are the ones in order to create experience the best Python + Emacs experience possible. However, many things which I also use on a daily basis with other major/minor modes have not been mentioned explicitly yet simply because they are not Python specific but instead they are used with more than one major/minor mode.
For example, there is the package
sa@wks:~$ ll em/libs/ total 20K drwxr-xr-x 2 sa sa 22 2008-06-02 10:40 allout drwxr-xr-x 12 sa sa 4.0K 2008-06-17 16:02 bbdb drwxr-xr-x 2 sa sa 26 2008-06-02 10:40 bm+ drwxr-xr-x 2 sa sa 24 2008-06-02 10:39 css drwxr-xr-x 2 sa sa 101 2008-06-02 10:40 etexshow drwxr-xr-x 2 sa sa 23 2008-06-02 10:40 htmlize drwxr-xr-x 10 sa sa 4.0K 2008-11-24 09:38 muse drwxr-xr-x 2 sa sa 22 2008-06-02 10:40 pastie drwxr-xr-x 2 sa sa 72 2008-06-02 10:40 pgg drwxr-xr-x 6 sa sa 4.0K 2008-07-11 18:54 planner drwxr-xr-x 2 sa sa 27 2008-06-02 10:40 ps drwxr-xr-x 3 sa sa 33 2008-06-02 10:40 pwsafe drwxr-xr-x 4 sa sa 4.0K 2008-06-02 10:40 remember drwxr-xr-x 4 sa sa 27 2008-06-02 10:40 scm drwxr-xr-x 2 sa sa 23 2008-06-02 10:40 unbound drwxr-xr-x 9 sa sa 4.0K 2008-11-21 17:31 w3m drwxr-xr-x 2 sa sa 36 2008-06-02 10:40 wtf sa@wks:~$
In the end, all comes down to what I explain here with regards to
Python and all the code within my
(show-paren-mode t) (transient-mark-mode t) (global-font-lock-mode t) (setq auto-save-interval 100) (setq auto-save-timeout 3) (savehist-mode t)
Our Python + GNU Emacs Agenda
In the following we are going to look at how to set up and configure
I figured we can jump right to ECB, skipping the whole installation
and setup of GNU Emacs itself — what packages to install are
mentioned above plus there is my
ECB (Emacs Code Browser) is as its name says... a code browser. While Emacs already has good editing support for many modes, its browsing support is somewhat lacking out of the box. That is where ECB comes in — it displays a number of informational windows that allow for easy source code navigation and overview.
Thereby it does not matter what kind of files we are working on i.e. some C++ programm, some PhD thesis written with LaTeX or ConTeX, some Muse project, etc.. With ECB we can browse through all that files/directories and interact in various ways with all the information provided.
How does it look like? Below is what it looks like, right after installing it, no custom configuration in place so far — just what it looks like out of the box...
As can be seen, I have my
CEDET (Collection of Emacs Development Environment Tools)...