====== 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]] - Install Pymacs - Copy files python-mode.el and pycomplete.el on your Emacs load_path (e.g. ~/.emacs.d/emacs). - Copy file pycomplete.py on your PYTHONPATH (e.g. /usr/lib/python2.5/site-packages) - 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 ==== M-x ispell-change-dictionary\\ M-x ispell\\ External links with more commands are:\\ [[http://www.cs.rutgers.edu/LCSR-Computing/some-docs/emacs-chart.html]]\\ [[http://sip.clarku.edu/tutorials/intro_emacs.html]]\\ [[http://ccrma.stanford.edu/guides/package/emacs/emacs.html]]\\ [[http://www.cs.cmu.edu/cgi-bin/info2www?(emacs)Mark]]