Ilya Zonov: Отключение поиска по ctrl-e на Nokia N810

Тоже из старых заметок. На N810 интенсивно пользуюсь emacs из консоли. Но при нажатии C-e в таком случае появляется окно поиска maemo. Это естественно не удобно. Для отключения надо сделать следующее:

$ gconftool -s /apps/osso/keybindings/global/osso-global-search --type=string ''
-1:-- Отключение поиска по ctrl-e на Nokia N810 (Post puzan (noreply@blogger.com))--L0--C0--September 02, 2010 01:36 PM

Alex Ott: Выпущен CEDET 1.0!

После многих лет разработки, бесчисленных версий 1.0preX, наконец-то выпущена версия 1.0 замечательного пакета для Emacs - CEDET.
Данная версия достаточно отличается от предыдущей - 1.0pre7, и содержит много изменений в Semantic, EDE и других подсистемах. Полный список изменений можно найти в официальном анонсе.
Пакет с исходным кодом можно скачать со страницы проекта и скомпилировать согласно инструкциям.
А после выпуска версии 1.0 продолжится работа над интеграцией пакета в Emacs, разработкой новых парсеров и унификацией подсистем Semantic.
-1:-- Выпущен CEDET 1.0! (Post Alex Ott (alexott@gmail.com))--L0--C0--August 30, 2010 07:12 AM

Emacs LJ community: Установка g-client или что такое w3m-buffer?

Я хочу настроить чтение Google Reader из EmacsW32. Есть модуль G-Client,  который добавляет в emacs не только Google Reader, но и другие сервисы Google (Calendar, ...). 
 У меня уже установлены:
  • w3m из cygwin
  • emacs-w3m.
W3M в emacs работает. Поставил g-client и добавил в .emacs следующие строки:
(add-to-list 'load-path "~/.emacs.d/g-client")
(load-library "g")
(setq g-user-email "valery.otryvankin@gmail.com")
(setq g-html-handler 'w3m-buffer)

Теперь при вводе команды "M-x greader-reading-list" и вводе пароля возникает ошибка: "Symbol's function definition is void: w3m-buffer". Модуля w3m-buffer в составе emacs-w3m нет. Функция такая не определена - C-h f <Ret> w3m-buffer. 

Что это за модуль w3m-buffer? Может это какой-то устаревший модуль? На что его можно заменить?

В файле g-client.html написано: "g-html-handler Name of function that handles HTML content".

По ходу дела обнаружил ещё одну проблему - нет xsltproc. xsltproc не входит в состав cygwin. Видимо, придётся компилировать его из исходников в cygwin.
-1:-- Установка g-client или что такое w3m-buffer? (Post ratxor)--L0--C0--August 26, 2010 08:17 AM

Ermine: Как уныло быть веб-девелопером

Пару дней потратила на то, чтобы приручить firebug. В поисках решения проблем с неприручаемостью firebug научилась более изящно перекрашивать сам файрфокс, отловила пару мелких бажков в своих "учебных" страничках с учебным же CSS, и решила пока забыть про firebug как про страшный сон. Не смогла найти, откуда растут ноги у цвета фона, например, в Console - он мерзкого белого цвета.
Досталось и емаксу - в режиме редактирования CSS на файле userContent.css (перекрашивает хтмл в файрфоксе) емакс стабильно зависает.
Кароче, всё плохо!
-1:-- Как уныло быть веб-девелопером (Post)--L0--C0--August 17, 2010 02:21 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 gavenkoa (noreply@blogger.com))--L0--C0--August 16, 2010 09:53 PM
Привинтила к емаксу auto-complete и срязу потеряла курсор. Потратила полчаса на перекраску визуальных элементов автокомплита. Сакс.
-1:--  (Post)--L0--C0--August 14, 2010 08:30 PM

Emacs LJ community: Enabling Flyspell mode gave an error

Внезапно случился сабж. Настройки не трогал, в системе вроде тоже ничего не менялось. Как диагностировать и лечить? Спасибо.
-1:-- Enabling Flyspell mode gave an error (Post Жабба высокого давления)--L0--C0--August 11, 2010 09:49 AM

Pavel Samolisov: Работаем с F# в Emacs

Сегодня мы поговорим о том, как использовать замечательный редактор Emacs для разработки на языке F# от одной небезызвестной корпорации. Не секрет, что синтаксис языка программирования F# был чуть менее, чем целиком позаимстован с синтаксиса OCaml, поэтому, чтобы на нем было удобно программировать в Emacs - достаточно адаптировать режим для OCaml, добавив работу с отступами, потому что в F# как и
-1:-- Работаем с F# в Emacs (Post Pavel Samolisov (samolisov@gmail.com))--L0--C0--July 24, 2010 06:25 AM

Emacs at Habrahabr: Emacs / 7 основных приемов навигации в Emacs

В этой статье мы рассмотрим 7 приемов навигации по тексту в программе Emacs
1. Построковая
2. Поэкранная
3. Перемещение по словам
4. Особая
5. По параграфам
6. Поиск
7. Перемещение из командной строки
-1:-- Emacs / 7 основных приемов навигации в Emacs (Post stogerc)--L0--C0--July 15, 2010 07:01 PM

Emacs at Habrahabr: Emacs / [Ссылка] Работаем с F# в Emacs

Вы серьезно заблуждаетесь, если думаете, что на F# можно разрабатывать только в Visual Studio. Поклонники nix-like операционных систем тоже могут программировать на этом языке, используя Mono и Emacs. В статье рассказано, как включить режим F#, настроить клавиатурные комбинации, компиляцию и интерпретацию F#-кода из этого замечательного редактора.
-1:-- Emacs / [Ссылка] Работаем с F# в Emacs (Post beq)--L0--C0--July 13, 2010 03:06 AM

Pavel Vyazovoi: Выводим org-clock в mode-line Stumpwm

Работа за компьютером не всегда проходит в фрейме Emacs (да, так бывает). А иногда на текущем воркспейсе нет ни одного фрейма Emacs (ужас, правда?). Тем не менее, желательно всегда иметь перед глазами некоторую информацию, которая имеется в mode-line емакса. Я подумал, что необходимо выводить её в mode-line stumpwm. Начать решил с текущей задачи org-clock.

Сначала сделал по-человечески: объявил функцию, создал mode-line formatter под неё, в emacs хук на clock-in/clock-out который через stumpish меняет значение переменной. Но нифика не работало!!! stumpwm стал падать с этим форматтером. Дебажить толком я его ещё не научился (над освоить slime или что там ещё), поэтому с проблемой разбираться как-то не получилось. Сделал по другому - пишу инфу в tmp-файл и вывожу его содержимое в mode-line.

Интересен другой момент, который я ещё не придумал: как лучше выводить количество минут, потраченное на эту задачу… Можно раз в минуту обновлять инфу, например. Может быть сделаю именно так. Тогда ещё можно будет вывести Effort (запланированный максимум времени на задачу).

В emacs:

(defun vyazovoi/stumpwm-org-clock (arg)
  (if arg
      (shell-command (concat "echo '" org-clock-current-task "' >  /tmp/my-org-clock.tmp"))
    (shell-command (concat "echo '' > /tmp/my-org-clock.tmp"))))

(add-hook 'org-clock-in-hook '(lambda ()
  (vyazovoi/stumpwm-org-clock t)))
(add-hook 'org-clock-out-hook '(lambda ()
  (vyazovoi/stumpwm-org-clock nil)))

В stumpwm:

(setf *screen-mode-line-format* (list
       "^3*org-clock: "
       '(:eval (run-shell-command "cat /tmp/my-org-clock.tmp" t))))

Ещё полезняшка: хоткей в stumpwm на clock-out и clock-in дефолтной задачи.

-1:-- Выводим org-clock в mode-line Stumpwm (Post)--L0--C0--June 26, 2010 07:00 AM

Pavel Vyazovoi: Замена org-remember: org-capture

Вчера Carsten Dominik, разработчик org-mode, прислал в группу org-mode анонс замены для org-remember.

Для тех кто не знает: org-remember это обертка над remember-mode, которая позволяет в небольшом минибуфере по шаблонам создавать новые записи в org-файлы. Например, добавлять новые задачи или напоминалки. Org-capture это совершенно новый инструмент, не использующий remember.

Приведу несколько выдержек из письма CD:

Как использовать org-capture

  1. Для того, чтобы импортировать в org-capture шаблоны из org-remember выполняем M-x org-capture-import-remember-templates RET.
  2. Для использования org-capture вызываем функцию org-capture.

Обзор самых интересных изменений

  • Не используется промежуточный буфер для набора записи.

Вместо этого ввод осуществляется непосредственно в том месте, куда должен записывать данные выбранный шаблон. Это исключает потерю записи если в процессе её ввода вызвать org-capture ещё раз. Также, все file-specific настройки будут работать.

  • Больше возможных элементов для вставки:

чекбосы, новая строка в таблицу, элемент в список и др.

  • Больше способов указать цель шаблона:
  • файл
  • файл + заголовок
  • файл + регулярное выражение
  • ID заголовка
  • и др.
  • в текущее положение курсора

В данный момент org-capture.el доступен в git-репозитории org-mode.

Подробнее

-1:-- Замена org-remember: org-capture (Post)--L0--C0--June 23, 2010 07:00 AM

13-49: Емакс

14:18 17.05.2010
Емакс
Решил не связываться с 23.2 из rawhide (у меня f13), скачал тарболл и собрал руками. Теперь запускается вот так :)


$ ~/src/emacs/emacs/src/emacs

В третьем тысячелетии на современном железе отрисовка в Емаксе тормозит =( Но это виноват драйвер интеловской видюхи. Опять посещают крамольные мысли о source-based дистре.

read more at Не люблю проприетарщину/покажи свои сорцы

rss2lj
-1:-- Емакс (Post)--L0--C0--May 17, 2010 12:48 PM

Ruslan Kosolapov: Для памяти

Фикс той хуйни, которая имеет место быть с русскими шрифтами в emacs 23.x для Mac OS X:
(set-fontset-font "fontset-default" '(#x0000 . #xFFFFF) '("Consolas" . "unicode-bmp"))

Шрифт нужно писать какой надо, соответственно.


PS: использованы материалы [info]ru_emacs
PPS: ну и собственно aquamacs уступает место сборке от http://emacsformacosx.com/, ибо те "улучшения", которые ребята из Aquamacs пытаются делать, нам, старым пердунам, только пищеварение портят.
-1:-- Для памяти (Post)--L0--C0--May 17, 2010 08:44 AM

Alex Ott: Выпущен GNU Emacs 23.2!

Выпущена новая стабильная версия GNU Emacs - 23.2. В основном она содержит исправления ошибок, но кроме этого есть и большие изменения - новый режим для редактирования JavaScript и в состав Emacs теперь включен CEDET, так что снимается часть проблем по его установке и настройке (хотя версия из CVS все равно лучше :-)
-1:-- Выпущен GNU Emacs 23.2! (Post Alex Ott (alexott@gmail.com))--L0--C0--May 08, 2010 08:33 AM

kashnikov: Время гейзера!

Для тех кто не морщится от Emacs и любит пописать на Scheme, могу посоветовать Geiser -- http://gitorious.org/geiser .
-1:-- Время гейзера! (Post)--L0--C0--April 26, 2010 08:04 PM

SXEmacsen: Гестуры в xwem

Совсем забыл про классную фукнциональность в xwem — гестуры aka strokes. Это когда рисуешь что-нибудь на экране, а у тебя выполняется какая-нибудь команда. В родном (S)XEmacs есть поддержка, но она конечно далека от идела с точки зрения пользовательского интерфейса, зато дало нужную функциональность для реализации гестур в xwem.

Вот список гестур, которыми я пользуюсь:

global strokes

Глобальные гестуры

xemacs strokes

Гестуры локальные для xemacs фреймов

gv strokes

Гестуры локальные для ghostview приложений

opera strokes

Гестуры локальные для бравзера opera

firefox strokes

Гестуры локальные для бравзера firefox

Скачать эти гестуры можно тут.

Как видно из скринов, гестуры в xwem достаточно прокаченные: они могут запускать команды, произвольные e-lisp выражения, эмулировать нажатия кнопок, а также вводить в текущее приложение всякие строки (на скринах нет такого варианта гестуры).

-1:-- Гестуры в xwem (Post lg (noreply@blogger.com))--L0--C0--April 22, 2010 07:51 PM

SXEmacsen: SXEmacs живёт

После некоторого затишья проект SXEmacs продолжил развитие. Появились merge-requestы и что-то всё таки делается. Залили мои патчи к FFI, которые реализуют новый тип safe-string в помощь дядьке, который пишет FFI к libdbus. Так же в Wand-mode я добавил поддержку модного liquid scale, кто не знает, то это выглядит вот так

Кстати, я наконец-то придумал как можно использовать wand-button в стандартном customize!

-1:-- SXEmacs живёт (Post lg (noreply@blogger.com))--L0--C0--April 02, 2010 11:19 PM

kayo вывесил фотку

прошлогодний скриншотец emacs22 на моей ручной машинке (Neo Freerunner)
-1:--  (Post)--L0--C0--March 31, 2010 02:53 PM

Emacs club (ya.ru): Помогите, плз, восстановить работу Emacs

Обновил пакет CEDET и пропала возможность переключаться из буфера в буфер при помощи мыши. Вернее работает так - левая кнопка предыдущий буфер, правая - следующий. А было так - при нажатии на имя буфера появлялся минибуфер с именами, и клавишей ТАБ можно было быстро выбрать необходимый буфер. Теперь так не работает. Как сделать что бы работало?

-1:-- Помогите, плз, восстановить работу Emacs (Post)--L0--C0--March 29, 2010 12:23 PM

Oleksandr Gavenko: Переход на GNU Emacs 23.1 в Windows.

Переход с версий 22.x на недавно вышедший релиз GNU Emacs 23.1 прошел гладко за исколючением двух моментов.

Первое с чем пришлось столкнутся это сообщение об ошибке при выполнении функции (server-start):

error: The directory e:/home/.emacs.d/server is unsafe
Проблема расположена в функции server-ensure-safe-dir:
(unless (and (eq t (car attrs)) (eql (nth 2 attrs) (user-uid)) (or (eq system-type 'windows-nt) (zerop (logand ?\077 (file-modes dir))))) (error "The directory %s is unsafe" dir))))
На stackoverflow.com описано решение проблемы. Cледует удалить выделенный участок кода и обновить байткод (Emacs сначала ищет .elc файла и только затем .el, редактируем файл emacs-23.1/lisp/server.el, C-x byte-compile-file <Down> <Ret>).

Вторая проблема состояла в том что функция codepage-setup устарела и ее определение исключили из дистрибутива. Теперь нет необходимости предварительно перед использованием кодовой страницы IBM cpXXX ее создавать! Для совместимости со старыми версиями Emacs воспользуйтесь следующим кодом:

(when (<= emacs-major-version 22) (codepage-setup 866) (codepage-setup 1251) )

Новость о релизе GNU Emacs 23.1: groups.google.com

Update: 2010-03-17.

2009-09-19 был исправлен баг #4197 касающийся server-ensure-safe-dir. Из ChangeLog:

This fixes bug#4197 (merged to bug#865, though not identical). * server.el (server-auth-dir): Add docstring note about FAT32. (server-ensure-safe-dir): Accept FAT32 directories as "safe", but warn against using them.
Также я нашел другой способ обойти эту проблему:
(require 'server) (when (and (= emacs-major-version 23) (= emacs-minor-version 1) (equal window-system 'w32)) (defun server-ensure-safe-dir (dir) "Noop" t)) ; Suppress error directory ~/.emacs.d/server is unsafe on windows. (server-start)
-1:-- Переход на GNU Emacs 23.1 в Windows. (Post gavenkoa (noreply@blogger.com))--L0--C0--March 17, 2010 09:25 PM

grep_z: buffers, files

В очередной раз залез посмотреть инфу о ido-mode, посмотрел скринкасты, вспомнил свой печальный опыт общения с данным режимом и не стал эксперементировать. Многие люди начинающие осваивать емакс сильно пруться с него(вобщем есть с чего, в сравнении с базовым функционалом). Меня наверное испортила связка buff-menu+ ibuffer, iswitchb, которой я пользовался до того как набрёл на ido-mode. Эта связка обеспечивает очень удобный и неперегруженный интерфейс для работы с открытыми буфферами. ibuffer вообще няшка, с его дифами и группами.

Имхо, гораздо важнее простая и удобная система работы с уже открытыми файлами, чем с откртием новых, так как последнее(по крайней мере у меня) обычно происходит в самом начале и когда нужно новый файл создать, а вот переключение между буфферами происходит постоянно. Поиск совпадений/функционала обычно через grep-find/moccur осуществляется.
-1:-- buffers, files (Post)--L0--C0--February 27, 2010 12:27 PM

grep_z: emacs buffer split

Обновил емакс впервые за долгое время, вылезла одна проблема, которую встречал раньше у других, но никогда не наблюдал сам, при попытке сделать C-x C-f (find-file) экран вместо привычного vertical-split, сделал неприличный horizontal-split на девственно чистом одном окне. Особо копаться не стал в истоках проблемы, родил что-то вроде этого:


(defun display-buffer-fn (buf ow)
  (or (get-buffer-window buf)
      (let (new-win)
        (if (one-window-p t)
            (if (window-splittable-p (get-buffer-window))
                  (setq new-win (split-window-vertically))
              (setq new-win (split-window (get-largest-window))))
          (setq new-win (get-lru-window)))
        (set-window-buffer new-win buf)
        new-win)))

(setq display-buffer-function 'display-buffer-fn)



Очевидно решение неполное, может кто в курсе как это побороть проще? Помнится некоторое время назад хотели сделать переменную для указания предпочтений по сплиту, но я такую не нашёл.
-1:-- emacs buffer split (Post)--L0--C0--February 13, 2010 02:28 PM

kashnikov: I was sent by the agency, sir. I was given to understand that you required a valet.

Пересобирать Cocoa Emacs (тут какой-то японец запатчил full-screen-mode, а добрые люди это дело выложили) под Jeeves and Wooster просто замечательно. Emacs это такой отличнейший Jeeves.
-1:-- I was sent by the agency, sir. I was given to understand that you required a valet. (Post)--L0--C0--January 31, 2010 08:38 PM

13-49: Emacs is so addictive

Чем восхитительно плох Емакс - это подсаживание на иглу всё больше и больше. С удивлением недавно обнаружил, что при попытке написать коммит мессейдж на удалённой машине выскочил vim вместо привычного Емакса, и пальцы жмут несуществующие емаксовские комбинации. "Это ж вим! Тут другие кнопки жать надо!" - подумал я, и начал опять жать емаксовские распальцовки...

Без везде доступного словаря и спеллчекера вообще хз, как с буржуями общаться...
-1:-- Emacs is so addictive (Post)--L0--C0--November 05, 2009 09:45 AM

Kostafey: Компоновка CLASSPATH с помощью emacs и muCommander

Вообще, CLASSPATH имеет по сути отношение к настоящей заметке как французское полусладкое к физике жидкости, но идея возникла именно в тот момент когда я в очередной раз компоновал CLASSPATH. На самом же деле объединением строк случается пользоваться не только и столько для этого. CLASSPATH - штука капризная. Бывает не любит пробелы или русские буквы в путях. А бывает этот фокус работает "на ура". Конечно, традиционно стараешься этого избежать. Тем не менее, иногда необходимо сформировать строку, в которой должна быть записана "пачка", "jar-ников". Иногда, этот процесс приходится повторять... Иногда и не раз...
Хочется этот процесс автоматизировать. Искать специализированные решения - несколько дико.
В качестве файлового менеджера я использую muCommander. Он реализует минимально необходимый набор функций файлового менеджера, не пытаясь стать системой по управлению ОС (аля TotalCommander), но и не столь аскетичен как dired (хотя, возможно, и менее гибок). Кроме того, cross-platform (java), распространяется под GPL. Настройка muCommander для того, чтобы emacs стал редактором по умолчанию, выглядит следующим образом:
В ~\.mucommander\preferences.xml указывается
<editor>
<use_custom>true</use_custom>
<custom_command>emacsclientw.exe -n &quot;$f&quot;</custom_command>
</editor>

Возвращаемся к CLASSPATH. Находясь в директории библиотеки, например C:\JavaLib\axis\ нажимаем (ключи я описал в стиле emacs, но все это, конечно, выполняется в muCommander):
C-a
M-S-c
Это приведет к тому, что пути к файлам будут скопированы в буфер обмена. Переходим в некоторый буфер emacs, например,temp. Вставляем содержимое буфера обмена (C-v или C-y в зависимости от настроек). Его содержимое принимает следующий вид, например:
C:\JavaLib\axis\axis-ant.jar
C:\JavaLib\axis\axis.jar
C:\JavaLib\axis\commons-discovery-0.2.jar
C:\JavaLib\axis\commons-logging-1.0.4.jar
C:\JavaLib\axis\jaxrpc.jar
C:\JavaLib\axis\log4j-1.2.8.jar
C:\JavaLib\axis\saaj.jar
C:\JavaLib\axis\wsdl4j-1.5.1.jar

Подобным образом дополняем список из библиотек других директорий.
Ниже предлагается ряд функций. Может, это и не очень существенная разработка :), но для меня частота их использования конкурирует разьве только что с к командами движения курсора.
;;=============================================================================
;; Join lines
;;=============================================================================
(defun circle-processing (arg function)
"Circle call 'function' 'arg' times, default - once"
(interactive)
(progn
(if arg
(setq times arg)
(setq times 1))
(let (counter)
(dotimes (counter times)
(apply function nil)))))

(defun join-next-line-space ()
"Joins next line with current with a space between them"
(interactive)
(progn
(end-of-line)
(next-line)
(join-line)))

(defun join-next-line ()
"Joins next line with current without space between them"
(interactive)
(progn
(join-next-line-space)
(delete-char 1)))

(defun join-next-line-semicolon ()
"Joins next line with current with semicolon between them"
(interactive)
(progn
(join-next-line)
(insert ";")))

(defun join-next-line-space-n (&optional arg)
"Joins number of next lines with current with a space between them"
(interactive "P")
(circle-processing arg 'join-next-line-space))
(global-set-key "\C-j" 'join-next-line-space-n)

(defun join-next-line-n (&optional arg)
"Joins number of next lines with current without space between them"
(interactive "P")
(circle-processing arg 'join-next-line))
(global-set-key "\C-cj" 'join-next-line-n)

(defun join-next-line-semicolon-n (&optional arg)
"Joins number of next lines with current with semicolon between them"
(interactive "P")
(circle-processing arg 'join-next-line-semicolon))
(global-set-key "\C-c\C-j" 'join-next-line-semicolon-n)

Так, точка в начале буфера.
M-<число строк> C-c C-j (join-next-line-semicolon-n).
CLASSPATH готов.
Обратная задача - преобразование из строки в список удобный для чтения. Вставив строку CLASSPATH в буфер набираем:
M-x replace-string ; <RET> ; C-q <RET> <RET>
К сожалению, перевод строки и/или возврат каретки будет представлен в буфере символом ^M вместо собственно начала новой строки. Но скопировав этот фрагмент из emacs, текст представляется в том виде, в котором изначально и ожидалось.

P.S. При поддержке emacs@conference.jabber.ru :)
P.P.S. Комментарии приветствуются, прежде всего, по стилю написания на elisp (можно ли что-то упростить, унифицировать, etc).
-1:-- Компоновка CLASSPATH с помощью emacs и muCommander (Post Kostafey (noreply@blogger.com))--L0--C0--October 07, 2009 09:00 AM

evg_krsk: Листинг участников конференции

Сейчас jabber.el распечатывает список участников MUC-конференции довольно уныло:
=====================================================================================
[23:07:43] : Participants:
Nickname        Role            Affiliation JID
zakon           moderator       owner       
evg             participant     member      
Добеp           participant     member      

---
=====================================================================================

И это ещё без полных JID-ов (т.к. я тут не moderator/owner). Они после превышения определённой длинны вообще превращают строчку в кашу. Хочется сделать листинг повеселее, как минимум с разделением по ролям (мухи/котлеты/мясо) и, возможно, с настраиваемым форматом. Примерно вот так:
=====================================================================================
[23:19:37] : 
Moderators:
	zakon		owner		

Participants:
	Добеp		member		
	evg		member		

Visitors:

Nones:

---

=====================================================================================

(формат "^I%nick^I^I%affilation\n", но тут не очень видно)

Взялся писать патч и даже вчерне сделал (результат выше). Прежде чем заливать в апстрим, хотелось бы услышать пожелания/предложения/возражения.
-1:-- Листинг участников конференции (Post)--L0--C0--September 30, 2009 03:27 PM

Extremus: Победа над переключением раскладки

Весной я перешел на Убунту и с тех пор мучался с переключением раскладки. Сегодня на рассвете случайно удалось добиться удоволетворительного поведения. Язык переключается одинаково и в Емаксе, и в остальной системе - по нажатию Shift+CapsLock. В дополнение к "сделать capslock дополнительным ctrl", я также отметил галку "клавиша compose = capslock" в диалоге клавиатурных свойств. После этого, капслок стал определяться под именем Multi_key. Затем я привязал (shift Multi_key) к функции toggle-input-method в файле .emacs и все заработало. Теперь напрягает только грубость реализации, но не поведение. Нагромождение какое-то. Потому и решил записать здесь на память. Ну, вдруг что-нибудь слетит после октябрьского апгрейда системы.

P.S. Все равно осталось кое-какое неудобство. Например, попытка ввести "C-u 20 C-x }", используя КапсЛок вместо Контрола, приводит к тому, что после набора цифр в минибуфере печатается "Multi_key", последовательность прерывается и последующий "С-x }" не получает аргумент.

-1:-- Победа над переключением раскладки (Post)--L0--C0--September 27, 2009 04:29 PM

Kostafey: Ограничения размера буфера для imenu

Сегодня обнаружил, что содержимое LaTeX-документа в окне методов ecb вдруг перестало автоматически перестраиваться по сохранению. Долго пытался понять что ж такого наизменял в .emacs, чтобы это перестало работать. На всякий пожарный попробовал старые конфиги, переустановил последовательно ecb, emacs, мир... :)

Но долго сказка сказывается, да скоро проблема решается:
;Imenu auto-rescan is disabled in buffers larger than this size (in bytes).
(setq imenu-auto-rescan-maxout 600000)
-1:-- Ограничения размера буфера для imenu (Post Kostafey (noreply@blogger.com))--L0--C0--September 26, 2009 06:07 PM

TuXray: База библиографических ссылок BibTeX в Emacs

Что такое BibTeX и какая от него польза можно прочитать здесь. Забегая вперед, скажу, что вещь это весьма полезная, научившись пользоваться которой, вам будет намного проще управляться с бибилиографическими ссылками в LaTeX, не мучаясь с переформатированием под каждый отдельный случай (например, считается, судя по всему, хорошим тоном для каждого журнала придумать своё и только своё правило для оформления этих ссылок. Справиться с этим варварством как раз поможет BibTeX).

Для редактирования базы данных BibTeX в линукс существует несколько программ, например, kbib, kbibtex, XfBib, jabref. Как следует из названия, первые две предназначены для работы в KDE, в то время, как последняя основана на Java. Я не имею ничего против этого языка программирования :), но лично мне не нравятся тормозящие программы, имеющие своеобразный интерфейс (возможно я не осили, но побороть ужасно размытые шрифты я не смог, а потом уже и не хотелось). Перечисленные программы обладают весьма серьезным функционалом, за исключением простенькой XfBib. Однако мне весь этот функционал не нужен, так же, как и KDE с Java. Можно, конечно, править библиографию руками, что весьма напряжно, но В Емаксе есть для этого специальный режим bibtex-mode.

Режим подхватится автоматически при редактировании файла с расширением bib, но если этого не произошло можно включить режим вручную:

M-x bibtex-mode

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

Комбинации клавиш

Создание окружения

Статья в журнале (A rticle):

C-c C-e C-a

Статья в сборнике тезисов (in P roceedings):

C-c C-e C-p

Заказная статья в сборнике (in C ollection):

C-c C-e C-c

Глава или страницы в книге (chapter in B ook):

C-c C-e C-b

Сборник трудов конференции вообще, а не отдельная статья (p roceedings):

C-c C-e p

Книга целиком (B ook):

C-c C-e b

Технический отчёт (T echnical report):

C-c C-e C-t

Если интересует что-то ещё, то сочетание можно посмотреть в меню «Entry-types», а если показ меню отключён, как у меня, то его можно посмотреть одновременно нажав Ctrl и правую кнопку мыши.

Заполнение полей

Для каждого типа окружения имеется обязательный набор полей. Также есть необязательные поля, которые начинаются с «OPT» (например, OPTmonth) или с ALT (например, ALTEditor).

Необязательное поле можно сделать активным комбинацией:

C-c C-o

Чтобы не мучаться с позиционированием курсора между фигурными стрелками, для перехода от одного поля к следующему лучше использовать bibtex-next-field

C-j

Выравниваются поля стандартно:

M-q

А для выравнивания всех полей в окружении служит bibtex-fill-entry

C-c C-q

Создать свое собственное поле (например, language) можно посредством bibtex-make-field

C-c C-f

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

@Article{sunarso08:_mixed_ionic_elect_conduc_miec,
  author =       {J. Sunarso and S. Baumann and J. M. Serra and
                  W. A. Meulenberg and S. Liu and Y. S. Lin and
                  J. C. Diniz da Costa},
  title =        {Mixed ionic-electronic conducting {(MIEC)}
                  ceramic-based membranes for oxygen separation},
  journal =      {Journal of Membrane Science},
  year =         2008,
  volume =       320,
  pages =        {13-41}
}

Закончив заполнение полей полезно всё выровнять с скомандовать bibtex-clean-entry.

C-c C-c
Как бы странно это ни звучало, но эта команда проверяет синтаксическую корректность окружения и предлагает дать название записи. Надо сказать, что некириллические названия задаёт сама вполне адекватно.

При создании документа с использованием AUCTeX и RefTeX можно сослаться на запись комбинацией C-c C-[. Будет предожено ввести регулярное выражение записи. Для простоты можно ввести кусок названия. Затем в вывалившемся списке отметить нужный вариант. Но об этом подробнее я расскажу в отдельном сообщении.

Преимущества и недостатки

К плюсам этого способа работы с библиографией можно отнести интеграцию с правкой текста в LaTeX, отсутствие необходимости привыкать к другой программе, поскольку всё можно сделать не выходя из емакса. Также, поскольку емакс работает с системой контроля версий, можно заслать обновленный вариант сразу же

C-x v v
после ввода комментария
C-c C-c

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

-1:-- База библиографических ссылок BibTeX в Emacs (Post Maxim G. Ivanov (noreply@blogger.com))--L0--C0--September 07, 2009 06:59 PM