User Tools

Site Tools


emacs

Emacs Stuff

This is my third try to get into emacs. Is difficult with all this keyboard related commands, but if you take it with love it kind of works.

Configuring emacs to get some nice feature for programming with python

sources:
http://venkys-dotplan.blogspot.com/2009/05/complete-newbies-guide-to-emacs-and.html
http://www.enigmacurry.com/2009/01/21/autocompleteel-python-code-completion-in-emacs/

  • Get emacs 22
  • Highlighting is integrated in emacs and should work automatically upon file openning. (I think is called python mode)
  • For editing and running python programs from emacs:
    • Get emacs.py from here http://www.loveshack.ukfsn.org/emacs/emacs.py and put it in /usr/share/emacs/22.1/etc overwriting the included version. (don't forget to backup the original file)
    • While editing type C-c C-z , this starts up a window running python
    • From the editor window press C-c C-l, this should execute the python program.
  • For switching between windows press C-x o
  • To start emacs in console mode type emacs -nw
  • For autoindentation add the following to the file “.emacs” :

(add-hook 'python-mode-hook '(lambda () (define-key python-mode-map “\C-m” 'newline-and-indent)))

  • For autocompletition during edition, follow the instructions from http://www.enigmacurry.com/2009/01/21/autocompleteel-python-code-completion-in-emacs/. As May-2009 you need to get the development versions of rope, ropemacs, ropemode. For installing this packages you need easy_install, you can get this application by installing python-setuptools debian package. You need to find AutoComplete.el version 0.1.0, 0.2.0 doesn't work yet with the rest. The other dependencies you can get from debian unstable. Using this is simple, just press TAB when you need to autocomplete something, this is really cool, specially because it runs in console mode.
  • If you install rope stuff then getting the python documentation should work. For getting the rope commands help press C-c d .

Adding a directory to the emacs load path

Add the following lines to your .emacs file

(setq load-path                                                               
    (append (list nil "~/.emacs.d/emacs")                                   
            load-path))                  

Emacs and python, a better way

The former method is nice but makes the tab key to interfere with the normal operation of the tab key. Using the following method, emacs and python work better together.

http://www.rwdev.eu/articles/emacspyeng

  1. Install Pymacs
  2. Copy files python-mode.el and pycomplete.el on your Emacs load_path (e.g. ~/.emacs.d/emacs).
  3. Copy file pycomplete.py on your PYTHONPATH (e.g. /usr/lib/python2.5/site-packages)
  4. Copy the following settings to your .emacs file
(require 'pycomplete)
(setq auto-mode-alist (cons '("\\.py$" . python-mode) auto-mode-alist))
(autoload 'python-mode "python-mode" "Python editing mode." t)
(autoload 'pymacs-load "pymacs" nil t)
(autoload 'pymacs-eval "pymacs" nil t)
(autoload 'pymacs-apply "pymacs")
(autoload 'pymacs-call "pymacs")
(setq interpreter-mode-alist(cons '("python" . python-mode)
                           interpreter-mode-alist))

Keybindings emacs command list

This list is based on what I feel I need from an editor right now (may-2009), hope it can be useful for someone.

C-x c - Exit
C-x C-s - Save changes
C-g - Quits what you are doing
C-l - Recenters
C-u cmd - Repeats the command u times

Editing

C-k - Delete rest of line
C-e - Move to End of line
C-a - move to Line start
ESC C-\ indent-region
C-o - insert-line
C-d - delete current character
M-x - query-replace

Macro stuff

C-x r space name - Names a position
C-x r j name - Jumps to a named position
C-x ( - Start recording commands (macro)
C-x ) - Stops recording commands (macro)
C-x e - Executes macro (continue pressing e executes the macro again and again)

Buffer and Windows

C-x k - kill-buffer
C-x 0 - Closes the current window
C-x 1 - Closes all the other windows
C-x o - Change window
C-x C-b - list-buffers
C-x ^ - enlarge-window

http://www.emacswiki.org/emacs/WindowResize

Python specific

C-c C-z - Starts python console
C-c C-l - Execute python program
C-c d - Over something, gives you the documentation
C-c C-h - Help for the minor and major mode (yas, rope, python)

Marking

M-x transient-mark-mode
C-M-space - “Marks what you want”
M-h - Marks current paragraph
C-w - Deletes
Esc-w - Copy
C-y - Paste
C-x r s - Saves the marked region to a register
C-g - To deactivate the mark

Spelling

emacs.txt · Last modified: 2010/09/21 14:43 by 131.159.18.96