Pull to refresh

Comments 19

блин, круто, а я что-то на Sublime Text 2 подсел, со всеми наворотами для питона
надо будет ещё и emacs опять установить
та да, мне тоже очень нравиться Sublime. денег на лицензию не жалко, жалко будет если что нибудь случиться с автором либо процессом разработки… если бы у него была хотя бы double license, пользовался бы с удовольствием, и допиливал бы на Python plugins тот функционал, к которому привык в emacs. Но, учитывая полное отсутствие сорцов в Sublime меня напрягает тратить свое время на него — я уже несколько раз в жизни обжигался, инвестировав своё время в чужой продукт. По функционалу Sublime мне наверное ближе всего к тому, что здесь описано. Vim правда тоже умеет много чего и местами больше. Остальные редакторы недотягивают. По средам лучшая коммерческая альтернатива emacs/python: PyCharm.
согласен, но тут такое дело — не будет Sublime, будет emacs :-)
emacs собственно всё то же самое умеет

пожалуй, единственной killer-фичей для меня в эклипсе был отладчик, но с тех пор как я предпочёл использовать логгирование, необходимость в нём отпала — так что IDE мне не нужна, только быстрый и фичастый редактор
Ёп… онский городовой… счастья то сколько. Круто.
Нет, правда — очень круто, спасибо! :)
Спасибо за огромнейший труд. Ряд моментов не знал, очень познавательно.

Визуализация превышения длинны строки


Я правильно понимаю, что сейчас Emacs остался единственным текстовым редактором, который не может просто рисовать вертикальную черту после 80-го символа и вынужден расскрашивать «хвосты» вываливающегося текста?
Да. Нет в той модели UI, что применена в emacs возможности нарисовать вертикальную черту.

Те поделки на Lisp что есть существенно тормозят, сам же engine не предоставляет такого интерфейса. Впрочем я не сильно переживаю, это из разряда фич «было бы неплохо». Сейчас всё равно идёт «общая» проверка синтаксиса в т ч и на long lines так что функционально всё есть, просто по другому, менее визуально.
Вообще — column-marker.el

Автор предлагает другой подход, имхо, потому что его способ позволяет сразу вычленить строки с превышением в уже готовом коде.
(require 'fill-column-indicator)
(add-hook 'python-mode-hook 'fci-mode)

www.emacswiki.org/FillColumnIndicator
Рисует вполне себе вертикальную черту. Говорят что даже в консольном режиме работает.
Не рисует. Она рисует черту только там, где текста нет :). А где текст пересекает указанную отметку она никак не рисут — поэтому пользоваться очень неудобно — черта частично есть, а частично нет :(.
Даже не представлял что это может быть проблемой)
Но вообще я очень активно использую flymake, так что 80+ строки у меня так и так подсвечиваются фоном.
Vim тоже не умеет. По крайней мере, я не нашёл, как это можно сделать, приходится хвосты красить.
>8.3. Визуализация превышения длинны строки
whitespace-mode же (входит в поставку emacs'а)
(setq whitespace-style '(face empty tabs lines-tail trailing))
(setq whitespace-line-column 80)

(add-hook 'prog-mode-hook
  (lambda ()
    (whitespace-mode)))


Для линуксоидов, использующих гном3 советую поставить Emacs Manager, отлично решает проблемы с виртуальными окружениями.
В целом — подборка интересная.

Несколько замечаний:
Alt+Y чтобы запомнить блок и Ctrl+Y чтобы вставить
M-y «прокручивает» элементы kill-ring'а на месте только что сделанной вставки, а не «запоминает блок».

C-w чтобы его вставить
Вставка — C-y. C-w — аналог cut, тогда как M-w — аналог copy.

Для начинающих я часто советую осваивать сразу «True way» и не пытаться включить так называемый cua-mode
и при этом
Визуальный режим включается кнопкой C-enter.
C-return включается как раз-таки в cua-mode. А про cua-enable-cua-keys в статье нет, чтобы включить C-return и выключить подмену C-x, C-c.

Вообще странно, что работа с окошками описана в предыдущей статье «для начинающих», а совершенно необходимый copy/paste почему-то в специализированной «для Python». Мне кажется, что целевая аудитория статьи с regions работать уже умеет, а значит, этот раздел вообще в статье лишний. Особенно про rectangles. Я, может, как-то неправильно редактирую тексты программ, но они (rectangles) мне за 15 лет ни разу в этой области не пригодились. Даже не то, что я легко заменял их привычными regions, а даже мысли не возникало: «а вот это с rectangles получилось бы проще».
К сожалению, даже после массы переработок данное решение не является идеальным. Иногда flymake пишет _flymake файлы не к месту на сетевых сервисах, иногда просто некорректно отрабатывает.
Тоже с этим мучался.
Вылечил установкой новой версии 0.4.12 и следующим кодом в конфиге:

;; python-flymake
(require 'flymake)
(add-hook 'find-file-hook 'flymake-find-file-hook)
(setq flymake-run-in-place nil)
(setq flymake-number-of-errors-to-display nil)

(defun flymake-python-init ()
	(let* ((temp-file (flymake-init-create-temp-buffer-copy
					   'flymake-create-temp-copy))
		   (local-file (file-relative-name
						temp-file
						(file-name-directory buffer-file-name))))
	  (list "~/.emacs.d/bin/pycheckers"  (list local-file))))

Оно создает копию файла не рядом, а во временной директории, даже при редактировании через tramp

Скажите, а вы package используете для установки плагинов или вручную все выкачиваете?
на emacs 24 только недавно перешёл, не переходил на package, но возможно попробую на новом компе.
В Gentoo очень хорошая система управления пакетами, там 95% emacs-packages есть, ставяться легко, потому и особой необходимости не назрело.
Еще бы такую статью о emacs-c++, и больше ничего не надо. :)
Хочу заметить, проверка pep8 подключается через flymake, что позволяет показывать ошибки в процессе редактирования. Так же, откопал возможность нормальной интеграции emacs с unittest'ами, помахал ручкой еклипсу и перешел на емакс.
Как все это интегрируется можно посмотреть тут. Или использовать целиком, мне подошло не все.
Sign up to leave a comment.

Articles