Инструменты пользователя

Инструменты сайта



// Emacs configs

В след за Luakit configs выкладываю свои конфиги для Emacs: https://gitlab.com/hatred-configs/emacs2)

На данный момент они не совсем самодостаточны: нужно некоторые пакеты устанавливать самостоятельно, так что запуск emacs –debug-init в первое время в помощь. Все недостающие пакеты есть в AUR для ArchLinux.

Кроме того, некоторые расширения тянутся из git, и они подключены как субмодули, поэтому после клонирования репозитория нужно будет выполнить следующие команды:

git submodule init
git submodule update

Пожелания по унификации приветствуются.

2) Репозитории для клонирования: https://gitlab.com/hatred-configs/emacs.git, git@gitlab.com:hatred-configs/emacs.git

// Emacs Org mode + ditaa + Artist mode

Ditaa - DIagrams Through Ascii Art - «компилятор» для ASCII диаграмм, на выходе создаёт достаточно приятные для глаза диаграммки:

Ditaa дружит с org-babel в Emacs org-mode, так что можно создавать диаграммы прямо в режиме заметки в Org mode.

Для начала, нужно добавить в .emacs (или .emacs.d/init.el) следующее:

;; 
;; Org Babel 
;; 
(require 'ob-tangle) 
(setq org-ditaa-jar-path "/usr/share/emacs/site-lisp/org_contrib/scripts/ditaa.jar") 
;(setq org-plantuml-jar-path "~/java/plantuml.jar") 
 
 
(defun bh/display-inline-images () 
(condition-case nil 
(org-display-inline-images) 
(error nil))) 
(add-hook 'org-babel-after-execute-hook 'bh/display-inline-images 'append) 
 
; Make babel results blocks lowercase 
(setq org-babel-results-keyword "results") 
 
(org-babel-do-load-languages 
(quote org-babel-load-languages) 
(quote ((emacs-lisp . t) 
(dot . t) 
(ditaa . t) 
(R . t) 
(python . t) 
(ruby . t) 
(gnuplot . t) 
(clojure . t) 
(sh . t) 
(ledger . t) 
(org . t) 
(plantuml . t) 
(latex . t)))) 
 
 
; Do not prompt to confirm evaluation 
; This may be dangerous - make sure you understand the consequences 
; of setting this -- see the docstring for details 
(setq org-confirm-babel-evaluate nil) 

С моей версией emacs-org-mode из AUR ditaa уже идёт комплекте. Если нет, скачайте с домашнего сайта и укажите путь до него.

само рисование осуществляется в блоке кода:

#+begin_src ditaa :file out.png 
... 
... 
... 
#+end_src 

Теперь небольшой хинт. Есть в штатной поставке emacs 24 такой минорный режим, как artist-mode - позволяет рисовать в ASCII, его-то можно использовать для рисования диаграмм, далее вспоминаем про такую штуку как narrowing (ну хоть убейте - не знаю как перевести, а если кратко: то можно выделить блок текста, так, что бы все изменения были только с ним, а остальные части документа вообще бы никак не могли быть доступны для изменения). Посему:
Шаг 1: жмем сколько нужно 'RET' (в народе - Enter) в блоке #+begin_src/#+end_src - выделяем себе пространство для дальнейшего манёвра
Шаг 2: выделяем весь этот блок и жмем 'C-x n n' (если включен CUA mode, то вместе 'C-x' нужно нажимать или 'C-x C-x' или 'S-C-x', я использую второе) - тем самым мы перейдём к редактированию только этого блока
Шаг 3: выключаем artist-mode: M-x artist-mode
Шаг 4: рисуем диаграмму
Шаг 5: выключаем artist-mode: M-x artist-mode
Шаг 6: убираем выделение региона: 'C-x n w'
Шаг 7: Жмем 'C-c C-c' находясь внутри блоке #+begin_src/#+end_src - запустится ditta и картинка покажется ниже блока кода.

Для себя, включение и выключение Artist mode я повесил на клавиатурную комбинацию 'C-x a', а выбор инструмента рисования в режиме Artist mode на C-s (инкрементный поиск тут не нужен)

И на последок, скрин-каст про artist mode: http://www.cinsk.org/emacs/emacs-artist.html

// Исследование блоков кода в Emacs

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

Сегодня случайно нашел небольшой хак, частично решающий эту проблему: http://www.physics.utah.edu/~detar/lessons/emacs/emacs/node7.html, процитирую:

Parenthesis checking can also be done with the mouse. Double left click on any parenthesis, brace, or bracket. Emacs then shows the matching symbol and highlights the code between them.

Краткий перевод: двойным щелчком мыши по скобке - блок между ней и парной подсветится, выделение будет динамическим от скобки до второй парной или до курсора на экране. Мышкой можно скролить, выделение останется.

// Emacs Muse

Наконец нашёл удобное средство для html/pdf публикации без излишней навороченности.

Вести сайт при помощи него я не собираюсь, но вот использовать как инструмент для создания отдельных HTML или PDF документов - вполне (первым, наверное, станет перевод документации для crowns на muse).

Что такое Muse и с чем его едят есть даже в русских интернетах:

Ну и официальные источники:

За основу своих настроек взял оные из статьи Алекса Отта. Единственно, из коробки взял только его шаблоны для генерации PDF (да и то, наверное, пересмотрю со временем). Для генерации html использую дефолтный шаблон xhtml1.1 – пока не определюсь со своими собственными, так как, по сути, собираюсь только использовать для статей, которые нужно куда-то отправить после.

Ну и для затравки сделал небольшой документ-шпаргалку по muse при помощи самого muse:

Так же стоит обратить внимание на режим org-mode, подробно рассписывать не буду, ограничусь ссылками:

На последок: muse есть как в основных репозиториях ArchLinux (кстати, разработчик оного - арчевод :)), так и в AUR (emacs-muse-git); режим org-mode есть только в AUR: emacs-org-mode (если не хотите стареньким, идущим вместе с Emacs, пользоваться).

// Emacs и автодополнение

Есть такой пакет CEDET, в прошлом посте дал ссылочку на статью Алекса Отта по его настройке.

Захотелось получить красивое меню автодополнения после ввода . или в C/C++ программах. Изучая его же конфиги (начинающим, и не только - рекомендую, есть интересности, в частности - автовставка шаблона при создании нового файла) наткнулся на интересную минорную моду: company-mode, которая то, что мне нужно и делает. Причем, по ходу ввода - выбор в меню изменяется.

Подкатом картинка, которая демонстрирует как это работает у меня.

// Emacs и пустые меню

Столкнулся с проблемой: в некоторых модах, которые добавляют пункты меню в Emacs, эти самые пукнты меню оказываются пустыми, причем, при последующем перезапуске, бывают оказываются и не пустыми.

Собственно вот так это выглядит, открыт C-файл и выбран пункт меню C:

Поиск привел на английски форум ArchLinux: http://bbs.archlinux.org/viewtopic.php?id=83860, собственно от туда варианты решения:

  1. выполнять команду:
    M-x accelerate-menu
  2. установить переменную окружения GDK_NATIVE_WINDOWS перед запуском Emacs:
    export GDK_NATIVE_WINDOWS=1

И сразу на правах рекомендации: Doxymacs

И ещё одна рекомендация, статья Алекса Отта по настройке CEDET: http://alexott.net/ru/writings/emacs-devenv/EmacsCedet.html

// 2007.06.06 Опять Emacs

Наткнулся на блог одного человечка, зовется theBlackDragon’s Blog. Тут его сообщения потеганые как Emacs

// 2007.06.05 Вот уже совпадения

За последний год меня подобные совпадения уже чуть ли не преследуют: только начал вспоминать снова Emacs и использовать его как среду кодирования, при этом посыпая голову пеплом, что версия текущая уже достаточно старая (2007.05.31 Emacs), и вот оппа… буквально 2го июня выходит в свет официальная версия Emacs 22.1. Ура.

Домашняя страница сея чуда: http://www.gnu.org/software/emacs/
Обсуждение на ЛОР'е: http://www.linux.org.ru/view-message.jsp?msgid=1951939

Тут еще попалась статья, точнее руководство по портированию .NET приложений в Mono:
http://www.mono-project.com/Guide:_Porting_Winforms_Applications

На ЛОРе же наткнулся на статью Трафик-компрессор для пользователей Dial-Up Скорее всего попробую поднять что бы давать доступ по GPRS когда с телефона сидеть буду.

И еще интересное: Потоковое вещание с помощью mpd и icecast

Ага, тут еще попалась инфа что вышла новая версия (правда RC) текстового WYSIWYM процессора LyX, давно его не пробывал использовать, а тут говорят даже появилась QT4 морда (почему-то у меня какая-то слабость к этой библиотеке). Нужно будет попробывать, а если кратко: основа форматирования TeX. Имеется возможность вмешиваться в исходный код документа. Больше пока ничего сказать не могу, сам ипользую для сложного форматирования LaTeX (дистрибутив TeXLive) (и морду texmaker (раньше было Kile)), а для простых записок - или простой текстовый редактор, какой под руку попадется, или OpenOffice.org.ru.
Домашняя страница

// 2007.05.31 Emacs

«Emacs - хорошая операционная система с хреовым текстовым редактором» или «Emacs использует библиотеку под названем Linux для доступа к железу», это все конечно шуточки, но доля правды в них есть. Редактор очень мощный, но пока его настроишь… уф… может не мало деньков пройти, а свой .emacs (hint: конфигурационный файл) становится чуть ли не произведением искуства.

Тут озадачился запуском его под Windows, на работе так сказать, так пока и не смог настроить что бы можно было вводить русский текст, посему пока юзаю XEmacs, но в уже во многих местах он очень меня не устраивает.

*Добавлено:* По ссылке ниже есть сборка Emacs под Windows из CVS, так там проблем с русским нет, достаточно установить фонт через меню настройки и все работает на ура.

Вот несколько ссылочек по теме: