Emacs dla Pythonautów

Celem tego pakietu jest udostępnienie podpowiadania składni Pythona w Emacsie, jak również ułatwienie dostępu do dokumentacji.

UWAGA:

Podstawą działania pakietu są instrukcja exec i funkcja eval, a więc gdy na ścieżce PYTHONPATH mogą znaleźć się skrypty podejrzanego pochodzenia, to skutki mogą być przykre.

Dostępne są następujące funkcje:

  1. podpowiadanie składni używając klawisza TAB (lub C-M-i) np. time.cl<TAB> -> time.clock time.<TAB> -> lista możliwości do wyboru
  2. opis elementu (funkcji/modulu/klasy/slowa kluczowego) w miejscu kursora używając klawisza F1
  3. po wpisaniu nazwy funkcji i otwarciu nawiasu podpowiadana jest składnia wywołania funkcji np. time.strftime( -> strftime(format[, tuple]) -> string
  4. klawisz F2 pozwala na zapytanie o sygnaturę funkcji bez wpisywania jej w bieżącym buforze
  5. klawisz F3 pozwala na pobranie opisu dowolnego elementu bez konieczności zaznaczania kursorem i wciskania F1

=============== Python 2.x =================

Instalacja:

  1. w przypadku oryginalnego Pymacsa, zainstalować wg instrukcji
  2. w przypadku Pymacsa z mojej paczki: plik pymacs.el skopiować na load-path Emacsa (np. /usr/share/emacs/site-lisp), a katalog Pymacs na ścieżkę PYTHONPATH (np. /usr/lib/python2.7/site-packages)
  3. pliki python-mode.el i pycomplete.el skopiować na ścieżkę load-path Emacsa (np. /usr/share/emacs/site-lisp).
  4. plik pycomplete skopiować na ścieżkę PYTHONPATH (np. /usr/lib/python2.7/site-packages)
  5. dodać poniższe ustawnienia do pliku konfiguracyjnego .emacs
# .emacs

;; python-mode settings
(setq auto-mode-alist (cons '("\\.py$" . python-mode) auto-mode-alist))
(setq interpreter-mode-alist(cons '("python" . python-mode)
                             interpreter-mode-alist))
;; path to python interpreter, e.g.: ~rw/python27/bin/python2.7
(setq py-python-command "python")
(autoload 'python-mode "python-mode" "Python editing mode." t)

;; pymacs settings
(setq pymacs-python-command py-python-command)
(autoload 'pymacs-load "pymacs" nil t)
(autoload 'pymacs-eval "pymacs" nil t)
(autoload 'pymacs-apply "pymacs")
(autoload 'pymacs-call "pymacs")

(require 'pycomplete)

# end of .emacs

=============== Python 3.x =================

Instalacja:

  1. w przypadku oryginalnego Pymacsa, zainstalować wg instrukcji
  2. w przypadku Pymacsa z mojej paczki: plik pymacs.el skopiować na load-path Emacsa (np. /usr/share/emacs/site-lisp), a katalog Pymacs na ścieżkę PYTHONPATH (np. /usr/lib/python3.1/site-packages)
  3. pliki python-mode.el i pycomplete.el skopiować na ścieżkę load-path Emacsa (np. /usr/share/emacs/site-lisp).
  4. plik pycomplete3 skopiować na ścieżkę PYTHONPATH (np. /usr/lib/python3.1/site-packages)
  5. dodać poniższe ustawnienia do pliku konfiguracyjnego .emacs
# .emacs

;; python-mode settings
(setq auto-mode-alist (cons '("\\.py$" . python-mode) auto-mode-alist))
(setq interpreter-mode-alist(cons '("python" . python-mode)
                             interpreter-mode-alist))
;; path to the python interpreter, e.g.: ~rw/python31/bin/python3.1
(setq py-python-command "python3")
(autoload 'python-mode "python-mode" "Python editing mode." t)

;; pymacs settings
(setq pymacs-python-command py-python-command)
(autoload 'pymacs-load "pymacs" nil t)
(autoload 'pymacs-eval "pymacs" nil t)
(autoload 'pymacs-apply "pymacs")
(autoload 'pymacs-call "pymacs")

(require 'pycomplete)

# end of .emacs