Уведомления

Группа в Telegram: @pythonsu

#1 Март 16, 2010 20:50:09

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Emacs + rope + yasnippet + auto-complete

пулинт стоит - приятная штука. контролив версий подключаются довольно просто вот отличная ссылочка http://alexott.net/ru/writings/emacs-vcs/

ЗЫ Ed, спасибо за конфиги :3



Офлайн

#2 Март 16, 2010 22:31:17

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Emacs + rope + yasnippet + auto-complete

Кстати, я себе сделал еще мини сниппет:

файл utfc в папке со питон-сниппетами

# -*- coding: utf-8 -*-
# name: coding
# --
#!/usr/bin/env python
# -*- coding: utf-8 -*-
_
подчеркивание уберите, тока +) это для местного парсера. Теперь при наборе utfc будем получать утф кодировку +)

UPD

Ed, посмотрел твой конфиг, позаимствовал пару вещей.

(defun my-python-hook ()
(require 'whitespace)
(whitespace-mode t)
(setq tab-width 4
py-indent-offset 4
indent-tabs-mode nil
py-smart-indentation t
whitespace-style '(trailing lines-tail space-after-tab space-before-tab)
whitespace-line-column 80)
надо сначала задавать настройки вайтспейса, а тока потом импортировать его, а то первый файл будет открываться не с теми настройками.

тоесть так:
(defun my-python-hook ()
(setq tab-width 4
py-indent-offset 4
indent-tabs-mode nil
py-smart-indentation t
whitespace-style '(trailing lines-tail space-after-tab space-before-tab)
whitespace-line-column 80)
(require 'whitespace)
(whitespace-mode t)



Отредактировано (Март 16, 2010 22:50:57)

Офлайн

#3 Март 17, 2010 10:26:18

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Emacs + rope + yasnippet + auto-complete

Спасибо. А я голову ломаю почему у меня такой цветастый первый файл всегда получается :)
Оффтопик: Может кто настраивал erlang-mode + distel? А то у меня чего-то эта связка не работает.



Офлайн

#4 Март 17, 2010 12:16:34

mem
От:
Зарегистрирован: 2009-10-25
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Emacs + rope + yasnippet + auto-complete

Сегодня как раз буду заниматься настройкой работы с erlang по манам от Алекса Отта=)))
Настроил пока что pylint c flymake примерно следующим образом:

(autoload 'python-mode "python-mode" "Python editing mode." t)
(add-to-list 'auto-mode-alist '("\\.py$" . python-mode))

(when (load "flymake" t)
(defun flymake-pylint-init ()
(let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace))
(local-file (file-relative-name temp-file
(file-name-directory buffer-file-name))
)
)
(list "epylint" (list local-file))
)
)
(add-to-list 'flymake-allowed-file-name-masks '("\\.py\\'" flymake-pylint-init))
)

(defun my-python-hook()
(require 'pycomplete)
(load-library "pylint")
(flymake-mode)

(autoload 'pymacs-load "pymacs" nil t)
(autoload 'pymacs-eval "pymacs" nil t)
(autoload 'pymacs-apply "pymacs")
(autoload 'pymacs-call "pymacs")

(add-to-list 'interpreter-mode-alist '("python" . python-mode))

(setq
py-python-command "/usr/bin/python2.6"
py-indent-offset 4
py-smart-indentation nil
indent-tabs-mode t
tab-width 4
)
)

(add-hook 'python-mode-hook 'flymake-mode)
(add-hook 'python-mode-hook 'my-python-hook)
Всё круто, только почему-то перестала выполнятся C-c C-c выполнение скрипта. В *Messages*:
flymake-get-file-name-mode-and-masks: Invalid file-name
Invalid file-name
Подозреваю что напутал с регулярками в flymake-allowed-file-name-masks, но замена на \\.py$ не помогла.



Офлайн

#5 Март 17, 2010 16:58:08

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Emacs + rope + yasnippet + auto-complete

офффффтоп. А я вот тоже эрланг хочю начать изучать. Странно, это :)



Офлайн

#6 Март 18, 2010 00:07:56

mem
От:
Зарегистрирован: 2009-10-25
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Emacs + rope + yasnippet + auto-complete

Ed
Оффтопик: Может кто настраивал erlang-mode + distel? А то у меня чего-то эта связка не работ
А с чем конкретно проблемы? Делал всё по манам и вроде с очередной попытки всё завелось.

(add-to-list 'load-path "/usr/lib64/erlang/lib/tools-2.6.4/emacs/")
(require 'erlang-start)

(add-to-list 'auto-mode-alist '("\\.erl?$" . erlang-mode))
(add-to-list 'auto-mode-alist '("\\.hrl?$" . erlang-mode))

(setq erlang-root-dir "/usr/lib64/erlang")
(add-to-list 'exec-path "/usr/lib64/erlang/bin")
(setq erlang-man-root-dir "/usr/lib64/erlang/man")

(defun my-erlang-mode-hook ()
;; when starting an Erlang shell in Emacs, default in the node name
(setq inferior-erlang-machine-options '("-sname" "emacs"))
;; add Erlang functions to an imenu menu
(imenu-add-to-menubar "imenu")
;; customize keys
(local-set-key [return] 'newline-and-indent)
)

;; Some Erlang customizations
(add-hook 'erlang-mode-hook 'my-erlang-mode-hook)

;; Настройка distel
(add-to-list 'load-path "~/.emacs.d/distel-4.03/elisp")
(require 'distel)
(distel-setup)


;; A number of the erlang-extended-mode key bindings are useful in the shell too
(defconst distel-shell-keys
'(("\C-\M-i" erl-complete)
("\M-?" erl-complete)
("\M-." erl-find-source-under-point)
("\M-," erl-find-source-unwind)
("\M-*" erl-find-source-unwind)
)
"Additional keys to bind when in Erlang shell.")

(add-hook 'erlang-shell-mode-hook
(lambda ()
;; add some Distel bindings to the Erlang shell
(dolist (spec distel-shell-keys)
(define-key erlang-shell-mode-map (car spec) (cadr spec)))))


(require 'flymake)

(defun flymake-erlang-init ()
(let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace))
(local-file (file-relative-name temp-file
(file-name-directory buffer-file-name))))
(list "~/.emacs.d/my-erlang/eflymake" (list local-file))))
(add-to-list 'flymake-allowed-file-name-masks '("\\.erl\\'" flymake-erlang-init))
Правда при ближайшем рассмотрении не всё так радужно. Не до конца разобрался как с Distel работать.



Отредактировано (Март 18, 2010 01:40:59)

Офлайн

#7 Март 18, 2010 11:16:10

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Emacs + rope + yasnippet + auto-complete

Я делал по этому: http://bc.tech.coop/blog/070528.html
C-c C-d n нормально отрабатывает, а дальше ничего от distel-а не получить. C-c C-d l и прочие комбинации просто виснут и ничего не делают. Прерываю по C-g.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version