Как стать автором
Обновить
4.9

Emacs *

Семейство расширяемых текстовых редакторов

Сначала показывать
Порог рейтинга
Уровень сложности

Покорение Emacs-режимов: руководство для самоделкина

Время на прочтение7 мин
Количество просмотров17K


Программисты делятся на две категории:
1) Те, кто уже использует Vim.
2) Те, кто уже использует Emacs.
3) Те, кто ещё не использует.


Предисловие


Как-то пришла идея поставить Emacs во второй раз, чтобы ещё раз убедиться, что это какой-то неправильный редактор с кучей разных игр, но никак не функций для работы с текстом. Так и остался на нём.

Добавление режима


В Emacs'е есть множество разных режимов, добавляющих функциональность в него. Как правило, когда нужна какая-то фича, она скачивается в виде пакета, состоящего из файлов .el (Emacs Lisp), и они уже подключаются к встроенным .el файлам, отвечающим за загрузку редактора.

Сначала это всё удобно использовать, но потом начинает чего-то не хватать и приходится думать о добавлении своей функциональности.
Построение

ECFG: сажаем ~/.emacs на диету

Время на прочтение4 мин
Количество просмотров14K
Друзья, сегодня я хочу поделиться с вами реализацией идеи по созданию модульной, переносимой и масштабируемой конфигурации для вашего любимого текстового редактора, опробованную в деле за многие месяцы на самых различных сочетаниях железа и ПО: Emacs Config.

image
Читать дальше →

Emacs: дрессируем курсор (продолжение)

Время на прочтение7 мин
Количество просмотров2.6K
Не бойтесь совершенства. Вам его не достичь!
                                           Сальвадор Дали


Взгляв в прошлое


В предыдущей статье, речь шла о том, как можно заставить курсор Emacs сохранять позицию в строке (столбец), при переходе к более короткой строке (грубо говоря — избавиться от «прыжков» курсора). Предложенное решение пожалуй обладало единственным достоинством — предельной простотой кода. Напомню, что для позиционирования курсора просто использовались дополнительные (лишние) пробелы.

Более основательное знакомство с Emacs Lisp и общение с откликнувшимися сведущими людьми (respect2: Иван Алексеев aka Yurii Sapfot) укрепило в мысли, что более правильное решение следует искать в направлении оверлеев. Так появилась версия №2 которую я и предлагаю уважаемым читателям.

Читать дальше →

Emacs: дрессируем курсор

Время на прочтение6 мин
Количество просмотров7.8K
К чему эти прыжки?
                 Остап Бендер

Вступление


Вообще-то я хотел написать небольшую заметку «о некоторых особенностях работы с макросами в Clojure». Но попутно решил наконец более основательно ознакомиться с Emacs.

Я конечно не совсем ровестник Lisp, однако знакомы мы вот уже… дцать лет и потенциал этого замечательного языка (даже скорее философии) вполне себе представляю и в теории и на практике. Было дело писал и свои реализации (скорее для лучшего понимания механизмов работы интерпретатора Lisp нежели для практического использования). Однако, Emacs практически не использовал т.к. в стародавние времена достаточно плотной работы с Lisp вполне обходился встроенным редактором моей версии (muLisp, редактор конечно же тоже был написан на нём самом). Потом приходилось работать с «более другими» инструментами, а последние годы и вовсе в иной сфере. Сейчас вот появилось немного времени «для души»…

Собственно «погружение» в Emacs прошло вполне комфортно — хотя я (почему-то всё ещё) и не юниксоид, но к консольным командам и вообще работе с клавиатурой отношусь с пониманием. Настройка управления и джентльменского набора «плагинов» также не вызвала проблем. С прикручиванием SBCL, Clojure и Scala пришлось немного повозиться, но всему виной было несоответствие версий и/или их (версий) врождённые проблемы.

Однако синдром «прыгающего курсора» (перемещение к концу строки при переходе к следующей/предыдущей строке в случае, если она короче текущей) вызывает лёгкую идиосинкразию. Если бы дело шло не о Emacs, то скорее всего пришлось бы смириться и искать «концептуальность» в таком подходе, как это часто делается при невозможности решения проблем. Но, поскольку мы имеем дело с конструктором редакторов, то проблема была трактована как вызов (как сейчас стало модно говорить).
Читать дальше →

Редактор или IDE? Очередная попытка анализа

Время на прочтение6 мин
Количество просмотров86K
Хотелось бы в очередной раз поднять эту довольно спорную тему.

С тех пор, как я начал заниматься программированием, этот вопрос не даёт мне покоя, а многочисленные темы на форумах и хабре ясности не внесли. Плюс к этому, мне кажется, некоторые аргументы как за одну, так и за другую сторону не были приведены. А у тех, что приведены, неверно расставлены приоритеты и упущен контекст.

В статье я постараюсь исправить это упущение и расставить ещё немного точек над «ё».

Приглашаю всех поучавствовать в поисках идеального инструмента.
Читать дальше →

Common Lisp IDE

Время на прочтение5 мин
Количество просмотров70K

Доброго времени суток, уважаемый читатель!
Перед каждым новичком в мире языка программирования Common Lisp
возникает проблема выбора среды разработки — Integrated Development Environment (далее, IDE).

Существует большое количество IDE для Common Lisp. Перечислим некоторые, самые распространенные, из них:

Для Знатоков
Знатоки могут возразить относительно последних двух пунктов списка.
Ведь, казалось бы, Lispbox = Emacs + Slime?!
Но, если внимательно посмотреть на сайт Lispbox, то, под ссылками для скачивания пакета, Вы увидите:
Last updated: February 6, 2011.

В данной статье я подробно расскажу как установить и настроить кроссплатформенную среду разработки для Common Lisp, как скачивать и устанавливать дополнительные библиотеки при помощи quicklisp — менеджера пакетов Common Lisp. Будет много полезных ссылок на ресурсы и материалы по языку.
Речь пойдет о связке GNU Emacs & Slime.
Если Вас интересует Common Lisp, Вам нужна кроссплатформенная, мощная, интерактивная Common Lisp IDE с блэкджеком и дамами дебаггером и дизассемблером (внезапно!), то, прошу под кат…

Читать дальше →

ErgoEmacs — a way to Lisp

Время на прочтение7 мин
Количество просмотров15K
Если вы получаете удовольствие от программирования, то, наверняка, перманентно находитесь в состоянии поиска лучших инструментов, лучших идей, лучших решений. И знаете, конечной остановкой лично для меня стал Emacs. А точнее — его сборка под названием ErgoEmacs. Под катом будет попытка логического и последовательного рассказа об использовании данного текстового редактора в контексте знакомства с ним впервые в жизни (не вдаваясь в сильную конкретику, а скорее стараясь уловить общую идею); идеологическая пропаганда (емакса вообще и лиспа в частности); небольшая критика последней из статей на Хабре по данной тематике, а также небольшое философское заключение. Если вы хотите расширить свой кругозор, прошу под кат.
Расширить кругозор

GNU Emacs. Статья, которую я так и не нашел…

Время на прочтение13 мин
Количество просмотров129K
Доброго времени суток, Читатель!

В данной статье хочу подробно рассказать про настройку текстового редактора GNU Emacs.

Операционная система GNU Emacs — программируемый текстовый редактор для программистов, написанный на программируемом языке программирования.

Для расширения Emacs используется диалект языка LispEmacs Lisp.
Читать дальше →

Как я полюбил vim, Emacs и клавиатуру

Время на прочтение13 мин
Количество просмотров77K
В какой-то степени эта статья ответ — или, скорее, дополнение — к публикации «Зачем vi-топор программисту 21-го века». Я увидел, что в комментариях люди по-прежнему удивлялись: какой смысл в этих редакторах, когда есть полноценные IDE; статья приводила немного реальных примеров и, понимая, что мне есть, что сказать, я решил поделиться собственным опытом. Написано в художественном стиле, так как думаю, если бы люди хотели сухую выжимку, они бы просто пошли читать мануалы. Так же предупрежу, что в мануалах по Емаксу клавиша «Alt» упоминается как «Meta». Я буду говорить «Alt», так как для многих это название привычней.
Читать дальше →

Зачем vi-топор программисту 21-го века

Время на прочтение5 мин
Количество просмотров58K
Не помню, когда и при каких именно обстоятельствах, но как-то очень давно я открыл для себя Git. Поначалу я не совсем, конечно, понял его преимуществ перед другими системами контроля версий, но уже порядком к тому времени подустав от TFS, которую на тот момент мы использовали в компании, решил его попробовать.

Git очень быстро завоевал мою любовь и с тех пор я даже не представляю себе свою работу без него.

Однажды, играясь и пробуя разные команды, я случайно запустил режим редактора, а Git, как оказалось, по умолчанию использовал Vim, который я до того времени в глаза и не видел. Ну и как обычно происходит первое знакомство с этим редактором? Правильно — с недоумением и перезагрузкой терминала. Банально — выйти из редактора я так и не смог и честно, даже подумал, что редактор тупо глючит. Я даже помню, как-то удивился — как же блин так получилось, что такие умные чуваки, создавшие такую мощную штуку, как Git, могли выбрать такой архаичный, тупой, непонятный и некрасивый (как мне поначалу показалось) редактор?


Читать дальше →

Вышел Emacs 24.4 с браузером

Время на прочтение1 мин
Количество просмотров13K
Версия 24.4 текстового редактора Emacs доступна для скачивания.

Больше информации:
http://www.gnu.org/software/emacs/

Исходный код можно получить с ближайшего зеркала GNU по следующим ссылкам:
http://ftpmirror.gnu.org/emacs/emacs-24.4.tar.xz
http://ftpmirror.gnu.org/emacs/emacs-24.4.tar.gz

Или явно выбрать зеркало из списка:
http://www.gnu.org/prep/ftp.html

Зеркала могут обновиться спустя некоторое время, основной ftp-сервер тут:
http://ftp.gnu.org/gnu/emacs/
Читать дальше →

Таблицы — Emacs и org-mode

Время на прочтение3 мин
Количество просмотров11K
На хабре уже есть посты про удивительные возможности 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 |
Подробности

Ближайшие события

Emacs как IDE для Python

Время на прочтение3 мин
Количество просмотров40K
Как известно, существует множество решений которые позволяют сделать из «консольного» редактора (vim/emacs) более-менее удобную IDE для языка Python. Представляю Вашему вниманию наиболее успешную, на мой взгляд, реализацию среды разработкы в редакторе emacs на основе пакета python-jedi.el. Отмечу, что бандл заменяющий rope(*-jedi) есть так же для vim, инстукцию по его настройке можно найти здесь .
Читать дальше →

Jedi — библиотека автодополнения для Python

Время на прочтение1 мин
Количество просмотров36K
Вот, набрел на просторах гитхаба на интересную библиотеку (GitHub). Дальше следует немного слов от автора.
Jedi — это инструмент, который можно использовать для автодополнения кода Python в IDE/редакторах. Jedi работает. Jedi быстр. Он понимает все основные элементы синтаксиса Python, в том числе встроенные функции.
Кроме того, Jedi поддерживает две разные goto функции и имеет поддержку переименования, а также поддерживает Pydoc и другие фишки IDE.
Jedi использует очень простой API, чтобы соединиться с IDE. Основная реализация — это VIM-плагин, использующий автозавершение Jedi. Я призываю использовать Jedi в ваших IDE. Это очень просто. Если возникнут проблемы (в том числе с лицензированием) — свяжитесь со мной.
Jedi можно использовать с такими редакторами:
Читать дальше →

Улучшаем emacs-jabber

Время на прочтение3 мин
Количество просмотров4.5K

Начало


На хабре уже была обзорная статья по jabber.el — jabber-клиенту для emacs. Решив попробовать этот клиент после pidgin, я наткнулся на отсутствие таких привычных уже вещей, как история ввода или форматированные сообщения. К сожалению, emacs-jabber не развивается так быстро, как хотелось бы. К счастью, возможности emacs по настройке практически безграничны, поэтому добавить нужное несложно. В этой статье я расскажу, как реализовал историю ввода. Если эта тема заинтересует общественность, в дальнейшем опишу отправку форматированных сообщений (html) и некоторые другие плюшки.
Читать дальше →

Выпущен Emacs 24.1

Время на прочтение1 мин
Количество просмотров2.5K
Сегодня была выпущена новая версия рабочей среды (и хорошего редактора) Emacs 24.1.

Среди новых возможностей:

  • Новая система пакетов (M-x list-packages), упрощающая загрузку и установку расширений. Стандартный репозиторий располагается на сервере GNU и поддерживается разработчиками Emacs.
  • Поддержка языков с письмом справа-налево (например, арабского или иврита).
  • Поддержка лексической области видимости (lexical scoping) в Emacs Lisp. В ближайшем будущем это позволит добавить в Emacs многопоточность.
  • Улучшена система тем (M-x customize-themes) — настройка шрифтов, цветов, и т.п. должна упроститься.
  • Улучшенная и универсальная система дополнения кода для множества пакетов и режимов.
  • Поддержка библиотек GnuTLS (для встроенного TLS/SSL-шифрования), GTK+ 3, ImageMagick, SELinux и Libxml2.

Читать дальше →

Небольшой лайфхак с редактированием буфера обмена

Время на прочтение4 мин
Количество просмотров13K
Я часто сталкиваюсь с такой ситуацией: пишу себе спокойно текст в чем-то (скажем, письмо в веб-интерфейсе гмейла), и вдруг, в какой-то момент возникает необходимость что-то переделать… и случается раздражение. Случается оно от того что редактирование в браузере (да и много где еще) не предполагает некоторых привычных для программиста удобств, вроде автоматической замены, регулярных выражений и макросов. При этом, вроде бы и не сложно скопировать текст в буфер и отредактировать его в правильном редакторе (Vim, Emacs, ...), но очень уж не хочется отрываться от контекста и совершать какие-то телодвижения, отвлекающие от текущей задачи… И вот, я уже расставляю отступы (нумерую список, заменяю слово, ...) вручную — результат достигнут, да и времени потрачено совсем не много, но осадочек остался…

Знакомая ситуация? Если ответ «да», в вашей операционной системе работает bash и ваша первая ассоциация к слову «редактор» это не «Microsoft Office» значит нам есть что обсудить под катом :)

Читать дальше →

Собираем GNU Emacs для Ubuntu

Время на прочтение6 мин
Количество просмотров6.5K
Вопросы связанные с администрированием ОС лежат вне области моих интересов, поэтому когда возникает необходимость решить один из таких вопросов, я сначала стараюсь найти краткое howto, если же ничего не найдено, сажусь за чтиво руководств, которые после решения проблемы благополучно забываю. Поэтому для редко решаемых, но всё же время от времени возникающиx проблем, я пишу себе шпаргалки. Эта статья — одна из них. Чем она в большей мере является: «quick'n'dirty создание deb пакета» или «кратко о сборке emacs.deb» — судить не берусь, подойдёт как в качестве одного так и другого. Ниже описана сборка GNU Emacs 24.0.92 из исxодных кодов в Ubuntu 11.10.
Читать дальше →

Настройка SBCL и среды разработки SLIME под Windows. Пошаговое руководство

Время на прочтение9 мин
Количество просмотров21K
В данной статье я подробно опишу как установить и настроить SBCL и окружение для продуктивной разработки под Windows.

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

Читать дальше →