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

Emacs *

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

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

Как начать писать код на Lisp?

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

Часто приходится видеть, как новички пробуют Common Lisp и потом жалуются, что с ним невозможно нормально работать. Как правило, это происходит из-за того, что они не понимают как настроить себе процесс, обеспечивающий тот самый "быстрый отклик" от среды разработки, когда ты поменял функцию, скомпилировал её и изменения тут же начали использоваться внутри уже "бегущей" прогрммы без её перезапуска.


Понять, как это выглядит, можно посмотрев какой-нибудь ролик на youtube, где демонстрируется интерактивная разработка на Common Lisp.


Всего голосов 39: ↑37 и ↓2+35
Комментарии63

Редактор TECO: EMACS, я твой отец

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

Впервые про TECO я прочитал в пародийной статье Real Programmers Don't Use Pascal, написанной незадолго до моего рождения. Там было написано, что настоящие программисты не используют новомодные редакторы EMACS и VI:


Нет, Настоящий Программист хочет редактор вида «Просил? Так получай!» — сложный, загадочный, мощный, не прощающий ошибок, опасный. TECO, если быть точным.
Оригинал
No, the Real Programmer wants a `you asked for it, you got it' text editor — complicated, cryptic, powerful, unforgiving, dangerous. TECO, to be precise.

Это меня заинтриговало. Что за зверь такой, можно ли его пощупать? Википедия рассказала, что TECO — это Text Editor & COrrector, создан он в 1962-м году в DEC и использовался на компьютерах семейства PDP, а позже на системах OpenVMS. Оказалось, что существует порт на Си, который поддерживается энтузиастами в актуальном состоянии и собирается под современными операционными системами. Вот я и решил почувствовать себя настоящим программистом хотя бы немножко.


Читать дальше →
Всего голосов 54: ↑53 и ↓1+52
Комментарии9

Производительность консолей и оболочек

Время на прочтение11 мин
Количество просмотров13K
Есть хорошее демо MSR от 2012 года, которое показывает эффект времени отклика при работе на планшете. Если не хотите смотреть три минуты видео, они по сути создали устройство, которое симулирует произвольные задержки вплоть до доли миллисекунды. Задержка 100 мс (0,1 секунды), типичная для современных планшетов, выглядит ужасно. На 10 мс (0,01 секунды) задержка заметна, но уже можно нормально работать, а при задержке менее 1 мс всё просто идеально — как будто вы пишете карандашом по бумаге. Если хотите проверить это самостоятельно, возьмите любой Android-планшет со стилусом и сравните с нынешним поколением iPad Pro со стилусом Apple. У устройства Apple время отклика намного больше 10 мс, но разница всё равно кардинальная — она такая, что я реально использую новые iPad Pro для записи заметок и рисования диаграмм, в то время как Android-планшеты считаю совершенно неприемлемыми в качестве замены карандашу и бумаге.

Что-то похожее вы увидите в шлемах VR с разными задержками. 20 мс выглядит нормально, 50 мс лагает, а 150 мс уже непереносимо.

Странно, но редко приходится слышать жалобы на задержку ввода с клавиатуры или мыши. Казалось бы, причиной может быть то, что ввод с клавиатуры и мыши очень быстрый — и происходит практически мгновенно. Часто мне говорят, что так оно и есть, но я думаю, что ситуация совершенно обратная. Идея того, что компьютеры быстро реагируют на ввод данных — настолько быстро, что человек не замечает разницы — самое распространённое заблуждение, которое мне приходилось слышать от профессиональных программистов.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии3

Emacs + удобный менеджер окон и буферов

Время на прочтение6 мин
Количество просмотров15K
Привет, хабражители!

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

Но, не хватало мне очень хорошего и удобного менеджера буферов, я начал искать и нашел emacs-purpose.

Это очень удобная система построения своей конфигурации буферов и их расположения на странице. Что интересно, что она подразумевает что у каждого буфера есть предназначение и соответственно целевое место в твоем layoutе. На основании этого extensionа даже возможно сделать свой собственный ide в emacs очень легко. Итак, давайте рассмотрим несколько шагов по построению своей версии IDE используя этот движок.

Для затравки, вот то как выглядит мой интерфейс емакса.

image
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии14

Истории

Альтернатива Emacs Lisp'у

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

image


Вы когда-нибудь искали альтернативу Emacs Lisp'у? Давайте попробуем добавить в Emacs ещё один язык программирования.


В этой статье:


  • Потенциальные преимущества, которые будут получены при возможности расширять Emacs на Go;
  • Определим способы взаимодействия Go и Emacs Lisp;
  • Затронем некоторые детали реализации описанного транскомпилятора;

Статья может заинтересовать пользователей Emacs'а, а также тех, кому небезразличны все эти бесчисленные реализации бесчисленных языков программирования.


В самом конце статьи представлена ссылка на work in progress проект, который позволяет конвертировать Go в Emacs Lisp.

Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии32

Как делать больше, уставая меньше. Emacs pomidor

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

Вступление


С возрастом моя работоспособность не становится выше. Теперь я не могу сидеть по 6 часов не вставая: спина, шея, глаза — все это начинает рано или поздно болеть.


Сейчас эта проблема особенно актуальна, потому что наша игра уже запущена в раннем доступе, и нужно сломя голову нестись к релизу.

Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии21

Файловая система, дешево и быстро

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

Разработчикам часто приходится иметь дело с файлами, представляющими из себя древовидную структуру: XML, JSON, YAML, всякого рода языки разметки вроде Markdown или Org-mode. Облегчая в общем и целом нашу жизнь, такие файлы имеют склонность к бесконтрольному росту, в какой-то момент из решения превращаясь в проблему.


Стандартное решение этой проблемы — разбиение на меньшие файлы. Это, конечно, работает, но не всегда удобно.


Но существует и альтернатива, о которой — ниже.

Читать дальше →
Всего голосов 53: ↑51 и ↓2+49
Комментарии50

Текстовые редакторы vs IDE

Время на прочтение5 мин
Количество просмотров16K
В последнее время наблюдается тенденция бессмысленных, с моей точки зрения, дискуссий относительно того, что лучше, — текстовый редактор или IDE. При этом, в темах, где обсуждается данный вопрос, зачастую 400 и более комментариев. Значит, людей этот вопрос интересует. Значит, надо писать статью.

Итак, какие цели статьи?
1. Что же лучше для программирования: текстовый редактор или IDE
2. Vim и Emacs — не текстовые редакторы
Читать дальше →
Всего голосов 36: ↑6 и ↓30-24
Комментарии129

El-get, ELPA, MELPA и автоустановка пакетов

Время на прочтение3 мин
Количество просмотров8K
В статье приводчится часть конфига .emacs, позволяющая при запуске автоматически проверить наличие и при неоходимости установить отсутствующие пакеты с помощью el-get и packages. Полезно, если Вы используете EMACS на разных компьютерах либо делитесь своим конфигом с другими людьми.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии9

Макросы в Emacs'е: формируем отряды для обработки

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


Не забывай свои корни, помни, есть вещи на порядок выше…
Каста здесь


История из жизни



Многие начинали свою компьютерную жизнь с игр. Кто не начинал, тот играет в шахматы на деревянной доске, как какой-нибудь президент. Я не играю в шахматы, я играю в Starcraft и другие подобные игры. Когда-то я играл многими часами, но время прошло и игры перешли в серьёзные занятия, дающие какой-то результат. В то же время хоть игры и переродились, но привычки остались старые. Иногда хочется поиграть.

Чего нет в шахматах? В шахматах нет живых патрулей, отрядов, минных полей в самых излюбленных местах и много чего ещё, чего так порой не хватает, в то время как ты перекомпилируешь какую-нибудь программу, редактируя её. Ностальгия захватывает и мы медленно начинаем искать что-нибудь подобное в программном окружении. И находим!

Сегодня мы поговорим о весёлых макросах.

Давай поговорим
Всего голосов 19: ↑15 и ↓4+11
Комментарии9

Emacs таинственный: Путешествие в калькулятор

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


Ничто так не скрыто от нас, как то, что лежит на поверхности.
Сунь Цзы и Чжугэ Лян (вольный перевод)


Предисловие



Случилось сие в одном из роликов на YouTube. При просмотре программистского урока нужно было срочно перевести 377 в десятичную систему. Мы не стали раскладывать это на тройки бит, представлять степени восьмёрки или просто не обращать на это внимание и пропустить этот неважный момент. Мы запустили калькулятор в операционной системе, пододвинули его окно к центру экрана и там всё выяснили. Да, это оно — число 255.

Конечно, не нужно рассказывать, что бывает в более сложных случаях. Порой дело доходит до листика в тетради, лежащей рядом с компьютером как раз для таких случаев. У каждого найдётся парабола или что-то около того, пересекающее что-то около того.

Первый контакт



Как и следовало ожидать, при использовании Emacs на протяжении месяцев или просто многих лет наступает Emacs головного мозга. Поэтому такие случаи не проходят даром и среди ночи в голове возникает вопрос: «Как же всё-таки в Emacs'е перевести 377? Он хотя бы это умеет? Ну, хотя бы 8 возведёт в степень?».

Наутро, зарядившись энергией в виде чая с горстью шоколадных конфет, мы открываем Emacs и начинаем его исследование.

Перевод из одной системы в другую
Всего голосов 17: ↑15 и ↓2+13
Комментарии21

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

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


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


Предисловие


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

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


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

Сначала это всё удобно использовать, но потом начинает чего-то не хватать и приходится думать о добавлении своей функциональности.
Построение
Всего голосов 19: ↑16 и ↓3+13
Комментарии7

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

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

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

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

image
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии16

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

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


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


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

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

Читать дальше →
Рейтинг0
Комментарии3

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

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

Вступление


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

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

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

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

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

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

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

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

Приглашаю всех поучавствовать в поисках идеального инструмента.
Читать дальше →
Всего голосов 49: ↑25 и ↓24+1
Комментарии380

Common Lisp IDE

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

Доброго времени суток, уважаемый читатель!
Перед каждым новичком в мире языка программирования 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 с блэкджеком и дамами дебаггером и дизассемблером (внезапно!), то, прошу под кат…

Читать дальше →
Всего голосов 18: ↑14 и ↓4+10
Комментарии14

ErgoEmacs — a way to Lisp

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

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

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

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

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

Для расширения Emacs используется диалект языка LispEmacs Lisp.
Читать дальше →
Всего голосов 96: ↑81 и ↓15+66
Комментарии44