Comments 19
блин, круто, а я что-то на Sublime Text 2 подсел, со всеми наворотами для питона
надо будет ещё и emacs опять установить
надо будет ещё и emacs опять установить
та да, мне тоже очень нравиться Sublime. денег на лицензию не жалко, жалко будет если что нибудь случиться с автором либо процессом разработки… если бы у него была хотя бы double license, пользовался бы с удовольствием, и допиливал бы на Python plugins тот функционал, к которому привык в emacs. Но, учитывая полное отсутствие сорцов в Sublime меня напрягает тратить свое время на него — я уже несколько раз в жизни обжигался, инвестировав своё время в чужой продукт. По функционалу Sublime мне наверное ближе всего к тому, что здесь описано. Vim правда тоже умеет много чего и местами больше. Остальные редакторы недотягивают. По средам лучшая коммерческая альтернатива emacs/python: PyCharm.
согласен, но тут такое дело — не будет Sublime, будет emacs :-)
emacs собственно всё то же самое умеет
пожалуй, единственной killer-фичей для меня в эклипсе был отладчик, но с тех пор как я предпочёл использовать логгирование, необходимость в нём отпала — так что IDE мне не нужна, только быстрый и фичастый редактор
emacs собственно всё то же самое умеет
пожалуй, единственной killer-фичей для меня в эклипсе был отладчик, но с тех пор как я предпочёл использовать логгирование, необходимость в нём отпала — так что IDE мне не нужна, только быстрый и фичастый редактор
Ёп… онский городовой… счастья то сколько. Круто.
Нет, правда — очень круто, спасибо! :)
Нет, правда — очень круто, спасибо! :)
Спасибо за огромнейший труд. Ряд моментов не знал, очень познавательно.
Я правильно понимаю, что сейчас Emacs остался единственным текстовым редактором, который не может просто рисовать вертикальную черту после 80-го символа и вынужден расскрашивать «хвосты» вываливающегося текста?
Визуализация превышения длинны строки
Я правильно понимаю, что сейчас Emacs остался единственным текстовым редактором, который не может просто рисовать вертикальную черту после 80-го символа и вынужден расскрашивать «хвосты» вываливающегося текста?
Да. Нет в той модели UI, что применена в emacs возможности нарисовать вертикальную черту.
Те поделки на Lisp что есть существенно тормозят, сам же engine не предоставляет такого интерфейса. Впрочем я не сильно переживаю, это из разряда фич «было бы неплохо». Сейчас всё равно идёт «общая» проверка синтаксиса в т ч и на long lines так что функционально всё есть, просто по другому, менее визуально.
Те поделки на Lisp что есть существенно тормозят, сам же engine не предоставляет такого интерфейса. Впрочем я не сильно переживаю, это из разряда фич «было бы неплохо». Сейчас всё равно идёт «общая» проверка синтаксиса в т ч и на long lines так что функционально всё есть, просто по другому, менее визуально.
Вообще — column-marker.el
Автор предлагает другой подход, имхо, потому что его способ позволяет сразу вычленить строки с превышением в уже готовом коде.
Автор предлагает другой подход, имхо, потому что его способ позволяет сразу вычленить строки с превышением в уже готовом коде.
(require 'fill-column-indicator)
(add-hook 'python-mode-hook 'fci-mode)
www.emacswiki.org/FillColumnIndicator
Рисует вполне себе вертикальную черту. Говорят что даже в консольном режиме работает.
Не рисует. Она рисует черту только там, где текста нет :). А где текст пересекает указанную отметку она никак не рисут — поэтому пользоваться очень неудобно — черта частично есть, а частично нет :(.
Vim тоже не умеет. По крайней мере, я не нашёл, как это можно сделать, приходится хвосты красить.
>8.3. Визуализация превышения длинны строки
whitespace-mode же (входит в поставку emacs'а)
Для линуксоидов, использующих гном3 советую поставить Emacs Manager, отлично решает проблемы с виртуальными окружениями.
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, отлично решает проблемы с виртуальными окружениями.
В целом — подборка интересная.
Несколько замечаний:
Вообще странно, что работа с окошками описана в предыдущей статье «для начинающих», а совершенно необходимый copy/paste почему-то в специализированной «для Python». Мне кажется, что целевая аудитория статьи с regions работать уже умеет, а значит, этот раздел вообще в статье лишний. Особенно про rectangles. Я, может, как-то неправильно редактирую тексты программ, но они (rectangles) мне за 15 лет ни разу в этой области не пригодились. Даже не то, что я легко заменял их привычными regions, а даже мысли не возникало: «а вот это с rectangles получилось бы проще».
Несколько замечаний:
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-c++, и больше ничего не надо. :)
Хочу заметить, проверка pep8 подключается через flymake, что позволяет показывать ошибки в процессе редактирования. Так же, откопал возможность нормальной интеграции emacs с unittest'ами, помахал ручкой еклипсу и перешел на емакс.
Как все это интегрируется можно посмотреть тут. Или использовать целиком, мне подошло не все.
Как все это интегрируется можно посмотреть тут. Или использовать целиком, мне подошло не все.
Sign up to leave a comment.
Emacs и Python (статья 2 из цикла)