Michael Kazarian: python-mode, памятка

cedet из cvs теперь принудительно дергает python.el (он у меня в /usr/share/emacs/23.1/lisp/progmodes), который конфликтует с python-mode.el, который мне нравится больше. Лечится правкой cedet/semantic/wisent/wisent-python.el Находится строчка (require 'python nil t) и комментируется. При желании перекомпилируется.
Нормальная работа восстановлена и глюков пока не замечено.
-1:-- python-mode, памятка (Post Baloo (noreply@blogger.com))--L0--C0--September 29, 2014 02:17 PM

Emacs@Habrahabr: [Из песочницы] Таблицы — Emacs и org-mode


На хабре уже есть посты про удивительные возможности org-mode — раз, два и три. В этом экскурсе я хочу рассказать ещё об одной возможности, с помощью которой можно пользоваться таблицами в текстовом редакторе (да, я про Emacs) без боли и унижения. А в org-mode таблицы достаточно просты и удобны:

|           ip | description          | users |
|--------------+----------------------+-------|
| 192.168.0.11 | Бухгалтерия          |     2 |
| 192.168.0.12 | Касса1               |     1 |
| 192.168.0.13 | Касса2               |     1 |
| 192.168.0.14 | Приёмная             |     2 |
|--------------+----------------------+-------|
|              | Всего пользователе=> |     6 |
Подробности
-1:-- [Из песочницы] Таблицы — Emacs и org-mode (Post reci)--L0--C0--September 22, 2014 08:01 AM

Alexander Sviridov: Emacs Lisp Style Guide

Божидар Батсов на днях стартовал Emacs Lisp Style Guide. Присоединяйтесь!

-1:-- Emacs Lisp Style Guide (Post)--L0--C0--September 07, 2014 05:56 AM

Alexander Sviridov: Emacs: Elixir Mode v1.5.0

Поучаствовал в релизе elixir-mode версии 1.5.0. Теперь, команды elixir-mode-string-to-quoted-on-region и elixir-mode-string-to-quoted-on-current-line выводят цитированную версию кода в специальный всплывающий буфер.


-1:-- Emacs: Elixir Mode v1.5.0 (Post)--L0--C0--August 29, 2014 02:54 PM

Ilya Zonov: EDE боль

Примерно раз в год я возвращаюсь к работе над некоторыми C/C++ проектами. И каждый раз я сталкиваюсь с неудобствами работы CEDET + EDE. Сначала я попробую описать свои невзгоды, а в конце предложу свой вариант сделать жизнь чуточку лучше. Комментарии приветствуются.

Какова вообще задача использовать EDE? Я хочу указать где-то все зависимости для конкретного проекта и передать эту информацию в semantic для навигации по коду и авто дополнений. И есть (по-моему здравое) желание не смешивать эту информацию для различных проектов. По-идее большего от EDE мне не надо. Ну может еще команду для сборки проекта добавить. Хотя предпочитаю делать подобное в отдельно взятой консоли. Итак, что нам предлатает Emacs Development Environment.

Пара слов про проекты по-умолчанию (то что создается с помощью ede-new). Больше всего меня бесит настройка через customize-подобный интерфейс. Им вообще не пользоваться для настройки Emacs'а в принципе. Если пойдешь сам что-то править в EDE файле, то точно натолкнешься на беду. Как минимум придется перезапускать Emacs или пересоздавать проект. Кроме того, либо я что-то потерял, либо в проекте по-умолчанию нельзя указать список include папок. Смысла в данном типе EDE-проекта на мой взгляд нет. Можно видимо использовать его для генерации make-файлов, но как показывает практика их писать и поддерживать лучше самому. Automake и подобное вам в помощь.

Также с помощью EDE можно добавить и работать с некоторыми существующими проектами. Например, есть проекты для C/C++ (ede-cpp-root-project), Java (ede-java-root-project) и другие. В них как раз можно указать внешние зависимости, и Semantic с переменным успехом их обрабатывает. Но есть одно но: почему-то эти настройки нельзя положить в Project.ede файл для полного счастья.

Видел такое решение: указать настройки всех проектов в конфигурационных файлах Emacs. Это мне тоже не нравится. Моя Emacs конфигурация все пухнет и пухнет, как я не пытаюсь ее аккуратно структурировать. Если еще там будет информация о всех проектах жизнь станет ужасна.

Была у меня идея положить все настройки в .dir-locals.el. Но тут мы сталкиваемся с проблемой множественного создания одного и того же проекта для каждого открытого файла. По-идее можно написать всю обработку этого случая внутри .dir-locals.el, но так пришлось бы тянуть и копировать это решение в каждый проект. Не айс. Хочется более универсального решения.

В общем к чему это я все. Для себя я написал небольшой хук для c-mode, который загружает конфигурацию проекта из .Project файла, если он еще не был загружен. Также он обновляет список include путей для clang, который используется в auto-complete-clang и flycheck.

(defun init/project-update ()
  (let* ((proj-file ".Project")
         (ede-proj (ede-current-project))
         (proj-dir-tmp (locate-dominating-file buffer-file-name proj-file))
         (proj-dir (when proj-dir-tmp (expand-file-name proj-dir-tmp)))
         (root-dir (when ede-proj
                     (expand-file-name
                      (ede-project-root-directory ede-proj)))))

    (when (and proj-dir (not (equal proj-dir root-dir)))
      (message "load project %s" proj-dir)
      (let ((default-directory proj-dir))
        (load (expand-file-name proj-file)))))

  (let* ((ede-proj (ede-current-project))
         (root-dir (when ede-proj
                     (ede-project-root-directory ede-proj))))
    (when root-dir
      (setq flycheck-clang-include-path
            (mapcar (lambda (item)
                      (concat root-dir item))
                    (oref ede-proj include-path)))
      (make-variable-buffer-local 'ac-clang-flags)
      (setq ac-clang-flags
            (mapcar
             (lambda (item)
               (concat "-I" item))
             flycheck-clang-include-path)))))

А сам .Project файл лежит в корне проекта и содержит только описание проекта (как видите реальной проверки на это нету). Например вот такое:

(ede-cpp-root-project "NewProject"
                      :name "NewProject"
                      :file "Makefile"
                      :include-path '("/inc")
                      :system-include-path '("/usr/include/")
                      :spp-table '(("PROJECT_EXPORT" . "")))

В душе я надеюсь, что я что-то делаю не так, что все в реальности легко и просто настраивается. Что на самом деле я просто где-то пропустил правильный вариант настройки в мануале CEDET. Если это действительно так, укажите на мою ошибку. Если же эти хуки являются единственным вариантом для удовлетворения моих запросов, то оформлю минорный мод для поддержки автоматической загрузки проектов. В общем делитесь вашими вариантами и впечатлениями от использования EDE.


P.S. Все эти негативные впечатления от использования EDE видимо возникли в результате годового использования Eclipse и Idea для программирования на Java. Пробовал Emacs заточить для Java, но затея не увенчалась успехом. Но для C/C++ проектов только Emacs, только хардкор.

-1:-- EDE боль (Post Ilya Zonov)--L0--C0--August 18, 2014 08:00 PM

Pavel Vyazovoi: Как готовить Emacs в OS X

Установка

Самая лучшая сборка Emacs для OS X устанавливается следующим образом (у тебя ведь уже есть homebrew, верно?):

brew tap railwaycat/emacsmacport
brew install emacs-mac --icon-modern
brew linkapps

Это свежий GNU Emacs с рядом патчей "под макось".
Например, этот порт по-умолчанию меняет местами ⌘ и ⌥ в Emacs, потому что так удобнее. Но это отключается. А полный список патчей здесь.

Клавиатура под Emacs

Теперь займемся хардварной оптимизацией. Необходимо демонтировать клаву вашего макбука и заменить на… Да я шучу, конечно =)

Не обязательно, но рекомендую: для комфортной работы в Emacs надо немного поменять расположение самых часто используемых клавиш. А именно: нужно поменять местами левый control с caps lock (это почти обязательно), и правый контрол с return (желательно, чтобы не превратиться в осьминога).

Шутки шутками, а без этого не знаю смог бы ли я познать всю внутреннюю красоту емакса со сломанными пальцами.

Левый контрол с капсом легко меняются средствами системы. Ключ вот здесь:

caps-ctrl-swap

С правым контролом чуть сложнее – понадобится программа KeyRemap4MacBook. Зато она умеет много других полезных штук, например – переключаться на английский язык по одиночному нажатию левой клавиши ⌘, и на русский – по нажатию правой.

В KeyRemap4MacBook нужно включить опцию "Change Return Key > Return to Control_L". При этом стандартная функция кнопки Return тоже сохраняется – срабатывает в том случае, если нажата только одна клавиша Return, без сочетания с другими. Правда ты же подсел на Emacs, теперь ты должен использовать только ⌃M, точнее сказать C-m, %username%.
Единственный неприятный момент – на такой Return не совсем адекватно реагирует Alfred. Но это было давно, может уже само починилось.

Emacs Mode в KeyRemap4MacBook

В этой программе есть целая группа опций под названием Emacs Mode. Она позволяет применять Emacs-like хоткеи для всей системы. На самом деле, во всех полях ввода OS X уже и так работают Emacs-like хоткеи. Но только основные, а эти опции могут сделать больше, например, транслировать ⌥W в ⌘C (для копирования в emacs-стиле).

EmacsClient

Для того, чтобы открывать файлы из командной строки в emacs, служит emacsclient, который устанавливается в /usr/local/bin, если ты воспользовался рекомендуемым мной способом установки Emacs. Это не относится к OS X, но на всякий случай уточнил, что он работает. Не забудь только сделать (server-start) в одном инстансе емакса.

Настройки OSX-only

Для тех, кто использует один конфиг Emacs на разных ОС, существует возможность задавать настройки локально. Для OS X это делается следующим образом:

(when (eq system-type 'darwin)
; ты знаешь что делать
)

Сразу рекомендую прописать туда:

(menu-bar-mode 1)

Дело в том, что любой уважающий себя емаксер сразу отключает тулбар, менюбар и, не редко, скроллбар. В емаксе это всё лишнее расходование экранного пространства, но вышеозначенная опция все-таки менюбар включает. Дело в том, что в OS X меню расположено в панели, а вот если его отключить, окно меняет свой тип и его уже не получится развернуть в фулл-скрин, а также будут проблемы с потерей фокуса.

Переключение языков в Emacs

Хорошо бы написать аналог программы emxkb для оконной системы OS X, чтобы удобно переключать языки ввода в Emacs. Подробнее про emxkb.

org-protocol

Org-mode это обалденный пакет. Если ты им пользуешься и тебе нужен рабочий org-protocol в OS X, то читай дальше.

Подробнее что зачем и почему написано вот здесь.

Реализация для Aquamacs здесь.

Реализацию для GNU Emacs из brew я сделал и положил сюда. Нужно просто скачать и положить в /Applications.

Есть ещё один нюанс: у меня в safari не работали букмарклеты для org-protocol пока я не заменил двойные слеши на одинарные, вот так:

javascript:location.href='org-protocol:/store-link:/'+encodeURIComponent(location.href)
-1:-- Как готовить Emacs в OS X (Post)--L0--C0--May 12, 2014 02:53 AM

Pavel Vyazovoi: Скромное мнение о редакторах текста

Я люблю экспериментировать с разными редакторами кода для программистов. Особый интерес проявляю к так называемым "hackable" редакторам кода (затрудняюсь перевести на русский). Давно хотел написать такой пост – просто мнение о тех редакторах, на которые обращаю внимание.

VIM (MacVim)

Автор vim-плагина Airline очень хорошо охарактеризовал его, когда сваливал на Emacs. Он написал примерно так: "VIM лучше в редактировании текста, но Emacs лучше для работы". Я полностью согласен, команды vim очень хороши в навигации по тексту и его редактировании. Только для того, чтобы понять эту магию, необходимо хорошо изучить vim. Но vim тормоз и ограниченный. Если попытаться добавить в него часть функциональности, которую я привык видеть в Emacs, он начинает дико тормозить. Я пробовал профилировать плагины, тормозят все по немногу.

Emacs

До сих пор считаю эту среду лучшей для множества задач. Emacs это не редактор, а интерпретатор лиспа – этим всё сказано. Если в виме есть работа с метками (закладками) и история изменений в виде дерева, то для Emacs существует несколько пакетов рыботы с метками и пакет для реализации истории, как в vim. Всё это реализовано на elisp и программист (у Emacs нет "просто пользователей") может в реальном времени изменять или полностью переделывать реализацию этих функций. Emacs – замечательный почтовый и jabber клиент, лучший органайзер и т.д. Но всё это великолепие затмевается высоким порогом вхождения. Если не углубиться в Emacs и сразу свалить на vim, то так и не познаешь всю эту магию (у большинства заявляющих "пробовал я этот ваш emacs" именно так и было, не распробовал). Кстати, упомянутый выше автор Airline перешел на Emacs только потому, что для Emacs существует лучшая реализация эмуляции vim-а. Работают все команды, которые я знаю в vim (а я их знаю много, целенаправленно изучал). Некоторые считают evil-mode реализацией недостающего текстового редактора в операционной системе Emacs. Для него даже замечательный плагин surround реализован и работает точно как в vim, а не так, как жалкое подобие в sublime.

Sublime Text 3

Действительно хороший редактор, но с ним как-то скучно. UI для плагинов у него слишком простой, но зато это единственный редактор, в котором есть умный авто-комплит и переход к определению для PHP. Всё благодаря плагину Sublime CodeIntel, код которого был взят из Komodo IDE. Плагины в саблайме работают в отдельном потоке, именно поэтому линтеры работают в фоне, а не при каждом сохранеии (как vim). И именно поэтому возможна реализация CodeIntel, который в фоне индексирует код. Не тормозит с кучей плагинов, красивый, всё работает.

Atom

Вроде как "hackable editor for the 21st Century", но пока слишком тормозной. Зато сразу на старте появилась почти вся нужная мне функциональность, потому что плагины клепают очень быстро, они ведь на javascript (и coffee). Плагины на javascript это хорошо. А вот "taking the web native" пока не в полной мере присутствует. Где live-coding для javascript как в LightTable? Кстати, они, кажется, хотели его продавать. А как это, если исходники открыты под либеральной лицензией?

LightTable

По задумке классный проект, но в данный момент больше напоминает демку. Из коробки live coding для нескольких языков: html/css, javascript, clojure, clojurescript, python. Можно ещё плагин для ruby доустановить. Live coding реализован классно – можно видеть результат выполнения кода прямо в редакторе, а можно подключиться к своему браузеру/repl/приложению и выполнять его там. Но много чего пока нету и самое печальное – нет документации для разработчиков. Так – пару статей в блогах о внутренностях LT. Короче говоря нет такой инструкции как у атома – садимся и за пять минут пишем демо-плагин. Кстати, сделан этот редактор (IDE?) тоже на web-технологиях, поэтому в качестве редактора используется CodeMirror. Ощущения от редактирования как-то не очень, хотя тормозит меньше чем atom. Тем не менее, что бы я там себе не думал, программисты на clojure уже используют его в работе.

-1:-- Скромное мнение о редакторах текста (Post)--L0--C0--May 12, 2014 12:40 AM

Kostafey: Fuzzy matching в popup-switcher с использованием flx

Наконец добрался до fuzzy matching в popup-switcher. Есть несколько решений для осуществления нечеткого поиска в Emacs. Например:

Настройка

В popup-switcher используется flx. ИМХО, это просто прекрасный движек для нечеткого поиска, хотя автор и предупреждает о том, что проект достаточно молодой и возможно еще остались ошибки.

В flx-ido есть более высокоуровневые функции, поэтому фактически зависимость именно от flx-ido.

Как и в случае с CEDET и projectile, явно зависимость не указывается (чтобы не превращать popup-switcher в монстра с большим количеством обязательных зависимостей). Чтобы воспользоваться возможностью нечеткого поиска, необходимо установить flx и flx-ido любым удобным вам способом, например через MELPA:

 M-x package-install [RET] flx-ido [RET]
Кроме этого, необходимо установить psw-use-flx в значение t

(setq psw-use-flx t)

Пример использования

Например, неообходимо найти функцию psw-get-item-by-name. Вызываем psw-switch-function (любым выбранным клавиатурным сочетанием), набираем первые буквы слов "get" и "item" - "gi", flx сузит список поиска и отсортирует по релевантности:
Пример использования flx в popup-switcher.

P.S.

Happy hacking! :)
-1:-- Fuzzy matching в popup-switcher с использованием flx (Post Kostafey (noreply@blogger.com))--L0--C0--May 03, 2014 11:02 AM

Emacs@Habrahabr: Emacs и Hunspell: нормальная проверка правописания



     Hunspell является наиболее перспективным из имеющихся на сегодняшний день свободных приложений для проверки правописания. Он встроен по умолчанию в такие программы как Firefox и OpenOffice. Словари к нему на сегодняшний день самые большие среди аналогов. Но с Emacs его так просто не подружить.
Читать дальше →
-1:-- Emacs и Hunspell: нормальная проверка правописания (Post PerlPower)--L0--C0--March 07, 2014 06:15 PM

Kostafey: popup-switcher - переключение буферов и навигация по функциям, используя TUI-меню

Эргономика промышленных решений

С некоторого времени для разработки на Java я использую IntelliJ IDEA. Какова там навигация по файлам или по методам! Нажимаешь C-S-n (или C-n для классов) и появляется окошко поиска со списком. Вводишь буквы из названия файла и список сокращается - самый удобный способ навигации по файлам проекта. Аналогично C-F12 для навигации по методам открытого класса - интерактивно изменяющееся меню на основе вводимых символов из имени метода. Ничего эргономичнее до этого не видел.

Изящество и красота текстовых интерфейсов

В emacs это все есть, безусловно, но выглядит это... в emacs вообще все выглядит абсолютно самобытно. Именно самобытно. Думаю, вряд ли кто-то скажет, что emacs предоставляет GUI - интерфейс, возможно лишь местами. В большинстве случаев, emacs не предоставляет и CLI - да, он часто интегрируется и CLI-инструментами: CLI-утилита является back-end-ом, а emacs предоставляет свою обертку, он имеет внутренние оболочки shell-ы и repl-ы, может сам быть запущен из внешних, но этот интерфейс, хоть и играет важную роль, все же является скорее вспомогательным. Выходит TUI? Во-многом, да. Но он зачастую деформируется механизмом окон. Если взять, например, mc, far, ndd, старые, времен DOS, среды разработки, антивирусы, архиваторы, предоставляющие TUI-интерфейс, то там любое диалоговое окно - часть общего текстового рабочего пространства. В emacs же окна жестко механически разделяют текстовые области. Данный подход стал идиоматическим. Скажем, org-mode и magit - примеры эффективного разделения возможностей TUI в рамках основного буфера и добавления вспомогательных окон и буферов. Такие буферы имеют свои специальные режимы с удобными таблицами ключей. Может оно и хорошо, и у такого подхода безусловно есть свои плюсы, но всегда ли это нужно? На каждый чих создается новое окно и в нем свой буфер. Лично мне куда приятнее чаще видеть старый-добрый TUI-интерфейс там, где создание отдельного окна избыточно.

TUI в emacs

Библиотеки popup-el (выпадающие меню) и direx-el (деревья) - примеры расширений, предоставляющих некоторую функциональность TUI. К сожалению, предоставляется лишь некоторая часть возможных виджетов, но тем не менее, имеющиеся весьма удобны.

Так, например, первая из них позволила мне реализовать в TUI некоторые из идей, используемых в IntelliJ IDEA: popup-switcher. Вызов интерактивной функции

  • psw-switch-buffer - приведет к появлению списка открытых буферов. Ввод символов имени буфера будет сокращать список. Именно в качестве (еще одного) механизма переключения буферов и задумывался изначально popup-switcher, однако на самом деле, он может быть использован для переключения чего угодно (отсюда и название).
  • psw-switch-projectile-files - работает со всеми файлами проекта (файлы проекта рассматриваются в контексте расширения projectile).
  • psw-switch-function - работает с функциями/методами в текущем файле.
Пример навигации по буферам.
Пример навигации по функциям в файле с исходным кодом на Clojure.

Установка

Установка расширения довольно проста. Добавьте MELPA в вашу переменную package-archives (если у вас он еще не был добавлен):

(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/"))
(package-initialize)
Далее popup-switcher устанавливается командой:

M-x package-install [RET] popup-switcher [RET]
Кроме того, в файле инициализации .emacs необходимо указать:

(require 'popup-switcher)

Настройка

После установки psw-in-window-center в значение t всплывающее меню будет появляться в середине окна. По умолчанию появляется в посередине меду левым краем окна и значением fill-column.

(setq psw-in-window-center t)
Вы можете установить интерактивные функции переключения буферов и навигации по методам для определенных клавиатурных сочетаний на ваш вкус, например:

(global-set-key [f2] 'psw-switch-buffer)
(global-set-key (kbd "C-S-n") 'psw-switch-projectile-files)
Для активации возможности навигации по функциям/методам необходимо установить последнюю версию CEDET и подключить библиотеку eassist. Это не является обязательным, и вы можете использовать popup-switcher без CEDET (и, очевидно, без данной функциональности). Пример настройки:

;; Activate semantic
(semantic-mode 1)

;; Load contrib library
(add-to-list 'load-path "~/.emacs.d/cedet/contrib/")
(require 'eassist)

(eval-after-load "eassist"
'(global-set-key [f3] 'psw-switch-function))

Добавление переключений

Добавлять новые применения механизма переключения очень просто, так функция psw-switch-buffer выглядит следующим образом:

(defun psw-switch-buffer ()
(interactive)
(psw-switcher
:items-list (psw-get-buffer-list)
:item-name-getter 'buffer-name
:switcher 'switch-to-buffer))
где
  • items-list - список, в котором осуществляется выбор (psw-get-buffer-list - просто использует встроеную функцию buffer-list с некоторыми дополнительными фильтрами).
  • item-name-getter - функция получения текстового обозначения каждого элемента списка в меню выбора.
  • switcher - функция, описывающая что делать с выбранным элементом.

Заключение

Для emacs существуют хоть и не всеобъемлющие, но весьма удобные библиотеки работы с TUI. Например, popup-elуже использующаяся в проектах auto-complete и emacs-jedi, а теперь и в popup-switcher.

Библиотека direx-el используется, например, в проекте emacs-jedi-direx. direx-el потенциально может выступать в качестве основы для более простого и современного аналога ECB. Конечно, в данном случае создание нового окна будет необходимо, но мне кажется, что это как раз тот случай, когда это оправдано.

Надеюсь, вас зантересовала идея более широкого применения TUI в emacs, а также написания и развития расширений, как использующих эти возможности, так и предоставляющих новые возможности для TUI - виджетов.

-1:-- popup-switcher - переключение буферов и навигация по функциям, используя TUI-меню (Post Kostafey (noreply@blogger.com))--L0--C0--November 05, 2013 02:06 PM

Ilya Zonov: Emacs + Java

Появилась у меня в последнее время необходимость основательно познать Java. Очень долго не смотрел в его сторону, были у меня некоторые предубеждения. Я всегда думал, что plain C и Lisp это наше все. И этого достаточно. А сейчас работа повернулась стороной с Java лицом и соответственно захотел быстренько познать его особенности, а также настроить свой любимый редактор для удобной работы с этим популярным языком программирования.

Для каждого языка программирования в Emacs я стараюсь настроить следующие возможности:

  • Подсветка синтаксиса (есть из коробки)
  • Авто дополнения (желательно через auto-complete)
  • Навигация по коду
  • Работа с проектами (опционально, люблю работать в консоли вне Emacs)
  • REPL (также опционально, но очень помогает во время обучения)

Из коробки в java-mode фактически работает только подсветка синтаксиса. Cedet идущий с Emacs'ом также позваляет настроить автодополнения и навигацию внутри классов. Но вот, например, системные вещи наотрез отказывается предлагать в качестве дополнений.

В общем я решил посмотреть, какие сейчас есть удобств для работы с Java в Emacs. При этом я наткнулся на следующие вещи:

Немного впечатлений о каждом расширении. Все пробовал на MacBook Air, OS X, Emacs 24.3.1 из MacPorts.

JDEE

Старое и похоже переставшее развиваться расширение. Сразу не понравилось, что тянет с собой свою цветовую схему. Мелочи, но они всегда бросаются в глаза. Также JDEE каким-то образом умудряется нарушить работу whitespace-mode, который перестает подсвечивать вообще что-либо. Данную проблему решить не смог. Есть у меня подозрение, что это связано с перекрашиванием буфера, но глубока не капал за ненадобностью. Нечто похожее сейчас есть в markdown-mode. Ну и каких-то особых возможностей здесь не нашел. Все плюшки сделаны через Cedet, соответственно их можно получить и без JDEE.

Malabar-mode

Завязан на Maven, про который ранее слышал совсем чуть-чуть и отдаленно. Быстренько глянул, как работать с этим менеджером проектов. Создал тестовый проект, но производительность malabar-mode вообще не порадовала. Он как я понял использует Groovy console для формирования дополнений. И это похоже порой не быстрый процесс. В общем от этого варианта тоже отказался. Кроме того проект также загибается. Хотя в знакомстве с malabar-mode есть свой плюс: я узнал что такое Maven и как с ним работать.

Eclime

Вот это вообще монстр. Идея затащить в Emacs (изначально в Vim) функционал Eclipse через некий интерфейс тоже на деле оказывается не шибко производительна. В данном случае eclime запускает Eclipse на заднем плане и общается с ним, чтобы получить автодополнения и еще некоторый функционал (рефакторинг, навигация по коду и т.п.). Скорость отзывчивости данной системы еще меньше, чем у Malabar.

Auto Java Complete

Смысл данного расширения прост: сгенерировать теги необходимых Java библиотек и предоставить интерфейс для auto-complete. Я попробовал использовать готовые теги и это работает достаточно быстро и удобно. Но тут мы получаем только информацию системных библиотек и того что сами укажем ручками при генерации тегов. В принципе в связке со стандартным Cedet идущим с Emacs'ом должно всего этого хватить.

Cedet Dev

Самый удобный, как мне кажется, вариант это использовать последнюю версию Cedet из Bazaar репозитория. Тут сейчас Java хорошо поддерживается. Maven проекты кстати тоже отлично воспринимаются. По работе и настройке Cedet лучше обращаться к статье Alex Ott'а.


На данный момент я остановился на последнем варианте: Cedet Dev + auto-complete. Есть у кого еще предложения как улучшить жизнь в Emacs при работе с Java? Или все таки Cedet это наше все и смотреть в другие стороны лучше не стоит?

-1:-- Emacs + Java (Post Ilya Zonov)--L0--C0--August 24, 2013 08:00 PM

Emacs LJ community: ru_emacs @ 2013-07-24T13:27:00

Всем привет! Ищу плагин для Emacs, ориентированный на работу с плоской базой данных в текстовом файле, как в forms-mode, со следующими требованиями:

1. Желательно, чтобы данные хранились в минималистичном формате (только содержимое ячеек и разделители). Т.е. как в forms-mode.

2. Нужен редактор данных, в идеале полу-ридонли окно с настраиваемым содержимым, в котором я могу править только текст записей БД. Т.е. как в forms-mode.

3. Нужно средство просмотра БД, например постраничный вывод содержимого по 10 записей, с возможностью быстро перескочить в редактор. Обязательно нужна возможность выводить на экран не только сами записи, но и произвольные Elisp функции от них.

4. Плагин должен предоставлять API для работы с БД внешними средствами. (Добавить запись, удалить запись, вывести запись в форматную строку итд.).

5. Должны быть поддержка многострочных записей.


Чем не подошли существующие средства:

Forms-mode:
Просмотрщика и API нет. Редактор неидеален, т.к. я не могу выделить readonly текст, что иногда нужно.

Properties в Org-mode:
Многострочных записей (в column-view) нет и не будет. Вывод данных не программируем (п.3).

Таблицы из встроенного table.el:
API нет. Вывод данных не программируем (п.3).


Есть ли ещё что-то подходящее?
-1:-- ru_emacs @ 2013-07-24T13:27:00 (Post Cheater)--L0--C0--July 24, 2013 09:30 AM

Emacs LJ community: Исправление russian-keyboard для MacBook Pro

Если вы набираете русский текст в Emacs и используете для этого

`C-\'
     Enable or disable use of the selected input method
     (`toggle-input-method').

`C-x  C-\ METHOD '
     Select a new input method for the current buffer
     (`set-input-method').
, то вы могли обнаружить, что некоторые символы в русской раскладке (`russian-computer') не соответствуют их расположению на клавиатуре MacBook.

Я вчера разобрался, как это исправить:
https://github.com/vvv/dotfiles/commit/b0292c6aea8ff856f40b932210a888d68b1a90d3

Вдруг кому пригодится. :-)

-1:-- Исправление russian-keyboard для MacBook Pro (Post Valery V. Vorotyntsev (valery.vv@gmail.com))--L0--C0--July 19, 2013 07:36 AM

Oleksandr Gavenko: Сортируем без повторений в Emacs.

Только для сортировки строк в Emacs имеется встроенная функция: M-x sort-lines.

Для сортировки без повторений выполняем:

  • выделить область
  • C-u M-| sort -u RET

С включенными режимами transient-mark-mode и delete-selection-mode можно сразу заменить выделенную область отсортированными без повторения строками:

  • выделить область
  • M-| sort -u RET
-1:-- Сортируем без повторений в Emacs. (Post Oleksandr Gavenko (noreply@blogger.com))--L0--C0--January 31, 2013 06:18 PM

Eugene Burmako: сублайм => емакс

После недавнего дискашена у metaclass и tonsky (клик клик) решил снова попробовать емакс. Особенно с учетом того, что сублайм closed source и развитие его, еще три-четыре месяца назад весьма бодрое, полностью остановилось.

Подумал и с удивлением заметил, что в сублайме для меня киллер фич не так уж и много. Первое это очень быстрый поиск по файлам в проекте (find + grep гораздо медленнее, к сожалению). Второе это возможность сохранять стейт проекта (открытые файлы, позиции в них) между запусками. Третье и четвертое это сниппеты и дефинишены синтаксиса (использующиеся для подсветки, комментирования и выщемливания определений - классов, методов, и т.п.). Вроде бы, все. Какой в этом плане state of the art в емаксе?

Еще доставляет go to symbol, который показывает список всех определений в файле и предоставляет для них fuzzy matching. Особенно удобно то, что по мере набора имени определения положение вьюпорта меняется, прокручивая файл к текущему в данный момент айтему. Вдвойне удобно, что по нажатию Escape вьюпорт откатывается обратно на позицию до начала поиска. Интересно, есть ли что-то такое уже существующее для емакса?

Screen Shot 2012-12-11 at 11.03.38

С нетерпением жду релиза и свободного времени, чтобы продолжить эксперименты с емаксом.
-1:-- сублайм => емакс (Post)--L0--C0--December 11, 2012 10:24 AM

Alex Ott: Новая версия статьи про CEDET

Только что залил на сайт новую версию своей статьи про настройку CEDET. Я также оставил доступной старую версию статьи, но в виде отдельной страницы.
Новая версия описывает новую схему расположения исходного кода, а также новый способ активации под-режимов, так что статья теперь применима и к версии из bzr, и к версии идущей в составе GNU Emacs (после того как выпустят новую его версию).
Кроме того, я добавил небольшое описание того, как настроить связку CEDET + Java, а также небольшое описание настройки дополнений через auto-complete.

Вместо моего конфига, который очень уж сильно замусорен, теперь лучше воспользоваться отдельным конфигом.

P.S. кстати, в последних снапшотах, CEDET умеет находить проекты Maven, и получать информацию о classpath прямо из них, так что теперь работает и дополнение имен для классов из сторонних библиотек.  Например, вот так (Это дополнение при работе с кодом Apache Tika):


P.P.S. If you found error, or typo - please write comment on page, or fork source code on github (it's enough to fix only .muse file), and create pull request :-)
-1:-- Новая версия статьи про CEDET (Post Alex Ott (noreply@blogger.com))--L0--C0--October 30, 2012 06:39 PM

kashnikov: Говорим и пишем правильно

Расширение writegood-mode [1] для Emacs помогает аспирантам избежать распространенных стилистических ошибок. Это расширение основано на советах и скриптах от Мэта Майта (Matt Might) [2].

________________________
[1] https://github.com/bnbeckwith/writegood-mode
[2] http://matt.might.net/articles/shell-scripts-for-passive-voice-weasel-words-duplicates/
-1:-- Говорим и пишем правильно (Post)--L0--C0--January 19, 2012 03:31 PM

Eugene Burmako: емакс, часть 4: ретроспектива

емакс, часть 1: первый взгляд
емакс, часть 2: восторг
емакс, часть 3: windows
емакс, часть 4: ретроспектива

Вдохновленный сегодняшним выступлением @alexott на митапе scala.by, я тоже решил поделиться наблюдениями из своего опыта. Экспы у меня не то чтобы много, но постараюсь быть максимально адекватным. Если я чего-то не догоняю, это не со зла - вы меня поправьте, ладно?

1) Емакс действительно крут. Главные его плюсы, на мой взгляд - неинтрузивность, программируемость и естественная интеграция с консолью. Например, недавно я соорудил наколенную билд-систему, с помощью которой застримлайнил свою работу над абсолютно разнородными проектами в универе. Она прекрасно заинтегрировалась в фар, и не менее замечательно - в емакс. Чтобы из емакса запустить какой-нибудь процесс и вбросить аутпут в буфер, нужны буквально пару телодвижений. Повесить на это все хоткеи и сделать гиперлинки на ошибки - еще немного работы. Пару обтачиваний и вуаля: myke-backend.el. Страшно представить, как что-то похожее сделать в Эклипсе.

2) Практически все можно пилить самому. Это прекрасно и очень вдохновляет (например, одним телодвижением можно посмотреть, на какой именно код забинджен тот или иной ключик), но есть и обратная сторона. Практически все придется допиливать самому. Даже банальную ширину таба нужно настраивать секретным образом (см. отдельную настройку для tab-stop-list), что уж говорить про такие вещи как копипасту, анду или прокрутку (кстати, у меня до сих пор через раз работает выделение мышкой). Это не то что бы уж очень плохо, но надо иметь ввиду, что первые пару недель емакс будет отнимать колоссальное количество времени.

3) Лисп не античеловечный, но и не простой в освоении. Довольно быстро я научился колбасить говнокод (что, наверняка, уже увидели уважаемые гуру емакса, пробежавшись по моему конфигу), но что-либо сложное я предпочитаю писать на чем-нибудь другом. Например, билд-система, упоминавшаяся выше, естественным образом выросла из ад-хок сниппетов на елиспе, но попытки превратить ее в что-то более-менее стройное успехом не увенчались, поэтому я по-быструхе переписал все с нуля на сишарпе. Наверняка, проблемы с удобством стандартной библиотеки и структур данных - всего лишь следствие моего несистемного подхода к изучению елиспа, но что вижу, то и пою. В любом случае, крайне помог бложек Стива Йегги, например, вот этот пост: Emergency Elisp.

4) Емакс - не панацея, что бы не писали в инете (по крайней мере для меня). Для разработки компилятора Скалы я юзаю Эклипс (контрол + клик на дефинишен и дебаг слишком важны, чтобы от них отказываться), для коммитов и истории я юзаю TortoiseGit (magit работает через раз + для чего-то нетривиального в VCS тупо нужен гуй). Вначале я думал, что это я такой нехардкорный, а потом увидел, что все в команде делают то же самое (только гуй к гиту другой, ибо никто не сидит на венде). Даже Мартин, который юзает емакс уже лет двадцать.

5) И все же я очень доволен емаксом. За денек я интегрировал в него греп по проектам с персональными свистелками, после чего выкинул поиск эклипса. Для сложных сессий репла Скалы я тоже юзаю емакс (идея консоли в буфере просто прелестна!). Да и домашки по алгоритмам в латеке я тоже фигачу в емаксе, ибо там подсветка синтаксиса и вручную прикрученный side-by-side превью.

Вот так и живем. Браузинг кода и дебаг в эклипсе, компиляция в фаре, текстовый поиск и реплы в емаксе. Use the right tools for the right job. Искренне ваш, кэп.
-1:-- емакс, часть 4: ретроспектива (Post)--L0--C0--December 10, 2011 02:32 PM

Andy Legkiy: Организационная пичалька

Org-mode очень хороший аутлайнер. Не являясь ярым сторонником емакса, я люблю этот mode всем сердцем.

У меня тут и журнал для личного пользования, и домашние дела, и рабочие дела. Рабочие дела, на одной работе, были и в виде каких-то крупных кусков, разбитых на мелкие подзадачи, и в виде справочной информации, и как неоформленные мысли и черновые наброски. Описание проб, итд. Так как рабочий процесс там полностью устаканен, это почти не создавало проблем. Для второй работы тоже пытался его использовать, но не так успешно.

А в чем же проблема? Да дело в том, что на каждой работе есть свои вики, трекеры, итд. Необходимость использовать разных средства организации дел ведет к дублированию, устареванию одной из копий (или в org-mode, или на рабочих ресурсах).

Если какая-то область новая, и какую-то задачу через время уже видишь под совсем новым углом, то на подгонку своих мыслей, примечаний, добавление новой информации, только в одном "органайзере", уходит определенное кол-во усилий, на которое я c радостью готов пойти. Но, кроме этого, больше усилий уходит на синхронизацию разных источников, ведь синхронизация происходит руками. А вот тут и начинается главная проблема. Отказываться от org-mode не хочется, потому что он очень удобный, быстрый, очень гибкий, и не зависит от наличия интернета. Но и дублировать информацию, перенося из одного формата в другой, разбивая по разным сущностям (страницы wiki, milestone, tickets) -- довольно таки трудно и неприятно.

Попал в ситуация, когда на рабочую систему забиваешь, а в org-mode сильно много не плодишь, а пишешь или справочную информацию, или как-то аморфно, просто забивая на конкретизацию. Ведь знаешь, что когда-то все прийдется переносить руками в другую систему, с другой структурой и организацией поддокументов, и будет большое количества мартышкиного труда.

И вот пришло, нужно использовать рабочую систему, и это не какая-то там бюрократия, а элементарная необходимость.

А что делать? Да пока выбор не большой. Коллегам нужно не только видеть план работ и ход его выполнения, перестройки, уточнения, но еще в нем участвовать.

1. Можно было бы воспользоаться имеющимся html-экспортом, на каком-нибудь рабочем ресурсе, и это было бы неплохим выходом, на начальных этапах. Но для перечисленных выше потребностей коллег оно совсем не расчитанно. Так что, увы, отпадает.
2. Полностью валить на рабочую систему, что и будет сделано, в итоге.
3. Использовать org-mode как буфер для небольших кусков, возможно приделав некоторое подобие простого экспорта. Но это костыль и полумера. После экспорта вся гибкость средств оrg-mode полностью теряется. Кто пользовался, тот знает о чем я. Но без средств автоматического переноса это может привести к очередному накоплению и завалу. Но как добавить дела в кучу, чтобы потом рассортировать, вполне может подойти.

Вот такой небольшой фейл использования для работы замечательного средства организации дел. А жаль.

UPD: Если у кого есть мысли или опыт сопряжения org-mode с популярными средствами управления проектами, буду рад услышать.
-1:-- Организационная пичалька (Post Easy (noreply@blogger.com))--L0--C0--October 27, 2011 10:04 PM

kashnikov: Цветовая схема для текстового редактора.

Для Emacs я долгое время пользовался какой-то хитрой тёмной схемой составленной из кучи других схем найденных в интернетах. Некоторое время назад перешёл на схему от уважаемого мэтра емаксоведения alexott. Его схема рулит.

Для Vim это torte в консоли. Но в графической версии torte, что называется "бьёт по глазам". Подумываю о переводе схемы alexott для Vim.

Какой цветовой схемой пользуетесь вы?
-1:-- Цветовая схема для текстового редактора. (Post)--L0--C0--August 22, 2011 06:41 PM

Ruslan Kosolapov: grundik @ 2011-07-04T11:16:00

"Попробуйте, к примеру, дотянитесь одной рукой одновременно до f и p. Клавиши находятся на большом расстоянии друг от друга, и точное позиционирование курсора с использованием стандартных комбинаций – жуткая морока."

Блять!!1111 ЗАЧЕМ дотягиваться одной рукой до кнопок, которые надо нажимать разными руками?!


И вот так у них всё - берут лопату, и пытаются одной рукой ей пользоваться. Зачем блять?! Лопате надо две руки и две ноги, и это фича, а не баг.
-1:-- grundik @ 2011-07-04T11:16:00 (Post)--L0--C0--July 04, 2011 04:16 AM

Andy Legkiy: Совсем не вовремя заглючил аутлайнер

Нашел в org-mode 7.5 ошибку, которая слегка попортила нервы.
В agenda day/week view, при определенных условиях, не отображаются хидлайны, помеченные как scheduled, если используется настройка "org-enforce-todo-dependencies".

Воспроизводится легко. Новый файлик, без каких-либо свойств, всего с тремя хидлайнами, у второго хидлайна есть подзадача, отмеченая состоянием TODO.
* TODO task 1
SCHEDULED: <2011-06-16 Thu>
* task 2
SCHEDULED: <2011-06-16 Thu>
** TODO subtask 2-1
* task 3
SCHEDULED: <2011-06-16 Thu>
В day-agenda не отображается "task 2" (второй хидлайн верхнего уровня).
  NOTES:      Scheduled:  TODO task 1
NOTES: Scheduled: task 3
Не отображается, но если попробовать выделить и скопировать текст из Agenda (хотя бы строку с "task 1"), "task 2" в буфере будет присутствовать.

Чтобы второй пункт отобразился, нужно:
- Убрать TODO с "task 1",
- Или убрать TODO c "subtask 2-1",
- Или убрать из конфига "(org-enforce-todo-dependencies t)".
-1:-- Совсем не вовремя заглючил аутлайнер (Post Easy (noreply@blogger.com))--L0--C0--June 17, 2011 11:45 AM

Alex Ott: Добавления в haskell-mode

На новогодних каникулах сделал давно запланированное добавление к haskell-mode - добавил поддержку для hlint (команда hs-lint) и haskell style scanner (команда hs-scan). Как и в предыдущей реализации, hs-lint поддерживает замену кода на предлагаемый вариант.
Патчи отправлены мейнтейнеру, но пока они не закоммиченны в основной репозиторий, эти изменения доступны в моем форке. Замечания и пожелания приветствуются...
-1:-- Добавления в haskell-mode (Post Alex Ott (noreply@blogger.com))--L0--C0--February 02, 2011 07:44 AM

swizard: Emacs на nokia n900 tutorial

Сабжу весьма благоприятствуют два факта:
  1. maemo является полноценным линуксом
  2. n900 оснащается хардварной клавиатурой-слайдером

Разумеется, самое главное во втором пункте -- это наличие железной кнопки Ctrl =)

Итак, воспользуемся следующим туториалом одного нашего японского друга: link.

Продублирую его (на всякий случай) на русском.

  1. Скачиваем пакет на устройство отсюда или с моего зеркала.
  2. Под рутом выполняем dpkg -i emacs_23.1.1_armel.deb.
  3. Обновляем apt и доставляем недостающие пакеты: apt-get -f install

Далее, нам предстоит решить такую проблему: на клавиатуре телефона отсутствуют очень полезные для емакса кнопки Meta (Esc) и Tab. Наш верный японский соратник предлагает такую клавиатурную карту для English US: link или mirror.

На стандартном английском макете Meta в этой карте работает через Fn+left, а Tab через Fn+right. Лично для меня табуляция вышла очень удачной (не знаю даже, почему), а мета -- ну так, сойдет.

Инсталлируем карту так:

cp /usr/share/X11/xkb/symbols/nokia_vndr/rx-51 /usr/share/X11/xkb/symbols/nokia_vndr/rx-51.orig
cp rx-51.qole /usr/share/X11/xkb/symbols/nokia_nvdr/rx-51
setxkbmap

Далее, надо решить небольшую проблему с емаксовым фуллскрином. Дело в том, что по-дефолту статусная строка внизу уезжает за пределы экрана.

Японец предлагает поставить специальный мод maxframe.el (здесь mirror). С ним чето мутновато: сначала он у меня не сработал, а после порта моих .emacs.d и .emacs с десктопа, неожиданно заработал. Ладно, пусть его.

В .emacs maxframe.el активируется так:
(add-to-list 'load-path "/path/to/maxframe")
(require 'maxframe)
(add-hook 'window-setup-hook 'maximize-frame t)
(maximize-frame)

Теоретически, можно тащить настройки и все остальное с десктопа и использовать.

Но для моих нужд (у меня там схемка guile) мне потребовалось кое-что подпилить напильником.

Во-первых, на десктопе я олдфажно использую ctrl+ins / shift+ins для копипаста. На n900 таких кнопок нет, поэтому пришлось перевесить:

(global-set-key (kbd "C-c c") 'clipboard-kill-ring-save)
(global-set-key (kbd "C-c v") 'clipboard-yank)

Ничего, нормально.

Во-вторых, не вызывается экранная клавиатура и спец-клавиатура для символов (по Fn+Ctrl). По-большому счету, мне это нафиг не надо, поэтому я даже не заморачивался. Но пары символов критически не хватает: это угловые скобки < и >. Пришлось их вешать на емаксовые комбинации:

(defun insert-less-symbol ()
  (interactive)
  (insert "<"))

(defun insert-more-symbol ()
  (interactive)
  (insert ">"))

(global-set-key (kbd "C-c C-,") 'insert-less-symbol)
(global-set-key (kbd "C-c C-.") 'insert-more-symbol)


Ну и пока вроде все, IDE для scheme у меня построился отличный. Все остальное, как на десктопе: guile, quack.el и т.д.

Иногда ловлю себя на мысли, что не хватает кнопок home, end и page up/down, но пока еще нужда лень не победила.
-1:-- Emacs на nokia n900 tutorial (Post)--L0--C0--January 18, 2011 05:58 PM

Oleksandr Gavenko: Определение рабочего окружения и возможностей платформы в Emacs

Для правильной работы файла настроек .emacs на различных платформах и различных версиях Emacs требуется проверять множество условий.

Я собрал несколько из них.

Итак посмотрите на указанные переменные:

emacs-major-version emacs-minor-version window-system - 'nil' if in terminal, 'w32' if native Windows build, 'x' if under X Window window-system-version - for windows only operating-system-release - release of the operating system Emacs is running on system-configuration - like configuration triplet: cpu-manufacturer-os system-name - host name of the machine you are running on system-time-locale system-type - indicating the type of operating system you are using: 'gnu' (GNU Hurd), 'gnu/linux', 'gnu/kfreebsd' (FreeBSD), 'darwin' (GNU-Darwin, Mac OS X), 'ms-dos', 'windows-nt', 'cygwin' system-uses-terminfo window-size-fixed
а также указанные функции:
(fboundp ...) - return t if SYMBOL's function definition is not void (featurep ...) - returns t if FEATURE is present in this Emacs (display-graphic-p) - return non-nil if DISPLAY is a graphic display; graphical displays are those which are capable of displaying several frames and several different fonts at once (display-multi-font-p) - same as 'display-graphic-p' (display-multi-frame-p) - same as 'display-graphic-p' (display-color-p) - return t if DISPLAY supports color (display-images-p) - return non-nil if DISPLAY can display images (display-grayscale-p) - return non-nil if frames on DISPLAY can display shades of gray (display-mouse-p) - return non-nil if DISPLAY has a mouse available (display-popup-menus-p) - return non-nil if popup menus are supported on DISPLAY (display-selections-p) - return non-nil if DISPLAY supports selections
Виполняйте проверки наподобии того как делается ниже:
(when window-system ...) (when (eq window-system 'x) ...) (when (>= emacs-major-version 22) ...) (when (fboundp '...) ...) (when (featurep '...) ...)
-1:-- Определение рабочего окружения и возможностей платформы в Emacs (Post Oleksandr Gavenko (noreply@blogger.com))--L0--C0--December 21, 2010 07:57 PM

Voins: Untitled

Обновив coreutils до версии 8.6, обнаружил случайно, что tramp больше не хочет открывать файлы через sudo. То есть это я потом уже понял, что причиной такого поведения стало обновление coreutils, а сначала это было довольно неприятно. Пришлось отвлечься от того, чем занимался, и посвятить вечер разбирательствам с поломкой. Как выяснилось в процессе, кто-то зачем-то поменял формат вывода в утилите stat. Наблюдается это вот так, например:

<new>$ stat . -c "%Y"
1287747411.000000000

Тогда как раньше было:

<old>$ stat . -c "%Y"
1287747411

Tramp пользуется stat'ом для получения атрибутов файлов. Если находит. Можно было, конечно, обмануть его, и заставить думать что stat, который он нашёл, несовместим  с тем, что он привык считать stat'ом, но это не наш путь. Наш путь привёл к появлению маленького автомата, определяющего в каком формате нам были выданы циферки, и выдающего правильные и ожидаемые циферки на выходе. Делать полноценный патч мне было лениво. Так что есть только это.

-1:-- Untitled (Post)--L0--C0--October 22, 2010 01:41 PM

Evgeny Morozov: Ubuntu 10.10, vim, pycharm

Обновил систему до Ubuntu 10.10. Может быть из-за обновления особых изменений не заметил. Нравится новый шрифт. Все остальное выглядит и работает почти так же, как и в 10.04.

Кстати, уже где-то две недели как я переехал на vim. Руки стали уставать заметно меньше. Многие вещи неудобны (не нравится cut/copy требующий трех нажатий — "+x/y, еще раздражает то, что портится буфер, если после этого удалить что-нибудь), многое пока вообще сделать еще не могу. Но обратно возвращаться не хочется.

Пробовал установить PyCharm (такая урезанная IntelliJ Idea), плюнул и бросил через час. Для внешнего вида есть меткое словосочетание на английском: «Blast from the past». Как будто вернулся на 15 лет назад. Даже tcl/tk современнее выглядит. Впрочем, это проблема всех GUI-приложений на Java. Неописуемо тормозит (на Phenom II x4 3.4 Ghz и 8 Gb памяти). Хотя в консоли оно честно пишет, что будет тормозить на OpenJDK. Но у меня другого и не было, это то, что в Ubuntu по умолчанию стоит. Автодополнение не впечатлило. В общем, поищу пока аналог yasnippet для vim.
-1:-- Ubuntu 10.10, vim, pycharm (Post)--L0--C0--October 19, 2010 06:01 PM

grep_z: grep_z @ 2010-10-15T22:12:00

В очередной раз заюзал newsticker в emacs. Читаю rss'ки я не особо много, да и отсилы раз в 2-3е суток. Раньше newsticker был неюзабилен, сейчас вроде работает. Настройки простые, через wget:



(autoload 'w3m-region "w3m"
  "Render region in current buffer and replace with result." t)

(autoload 'newsticker-show-news "newsticker" "Emacs Newsticker" t)

(custom-set-variables
 '(newsticker-retrieval-interval -1)
 '(newsticker-html-renderer 'w3m-region)
 '(newsticker-frontend 'newsticker-treeview)
 '(newsticker-keep-obsolete-items t)
 '(newsticker-automatically-mark-items-as-old nil) 
 '(newsticker-automatically-mark-visited-items-as-old t)
 '(newsticker-retrieval-method 'extern)
 '(newsticker-cache-filename "~/emacs/tmp/newsticker/newsticker.cache")
 '(newsticker-dir "~/emacs/tmp/newsticker/")
 '(newsticker-url-list
   '(("Plane Emacs"
      "http://planet.emacsen.org/atom.xml" nil nil nil)
     ("Kernel Trap"
      "http://kerneltrap.org/node/feed" nil nil nil)
     ("Reddit - Technology"
      "http://www.reddit.com/r/technology/.rss" nil nil nil)
     ("Reddit - Science"
      "http://www.reddit.com/r/science/.rss" nil nil nil)
     ("Reddit - Worldnews"
      "http://www.reddit.com/r/worldnews/.rss" nil nil nil)
     ("Reddit - Math"
      "http://www.reddit.com/r/math/.rss" nil nil nil)
     ("Reddit - Programming"
      "http://www.reddit.com/r/programming/.rss" nil nil nil)
     ("OSNews"
      "http://www.osnews.com/files/recent.xml" nil nil nil))))

(provide 'rc-newsticker)
;;; rc-newsticker.el ends here



-1:-- grep_z @ 2010-10-15T22:12:00 (Post)--L0--C0--October 14, 2010 01:18 PM

grep_z: email indexer - notmuch

Чисто в тексте выглядит интересно: http://notmuchmail.org/
Оптимизация, все дела, интеграция с емаксом.
Обязательно попробую, хотя мне пока и wanderlust за глаза хватает, почты от силы на 4k единиц в месяц, плюс архивирование большей части.
-1:-- email indexer - notmuch (Post)--L0--C0--October 03, 2010 04:00 AM

Ruslan Kosolapov: fun: weather widget for emacs :)



Просто прикольно :)

PS: по клике на картинку - не только про погоду, но и про google maps в emacs-е.
-1:-- fun: weather widget for emacs :) (Post)--L0--C0--September 09, 2010 02:58 AM