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

Emacs *

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

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

Принципы работы интегрированных сред разработки

Время на прочтение7 мин
Количество просмотров3.3K
Вот некоторые принципы работы IDE (интегрированных сред разработки), которые, на мой взгляд, нужно зафиксировать:

Принцип минимальной навигации


Навигация в IDE раздражает. В тексте, конечно, можно выучить все причудливые навигационные сокращения типа C-a M-< M-f и так далее, но всё равно требуется немало набирать на клавиатуре. А если речь идет о навигации в файловой системе, то требуется еще больше ввода и поиска.

IDE должна минимизировать время, требуемое на навигацию. В частности, можно организовать автоматический импорт функции, когда пользователь набирает call-сайт, чтобы не переходить в верхнюю часть файла, чтобы добраться до импорта, или использование goto определения, чтобы не приходилось выяснять, в каком файле определен тот или иной класс.

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

Вы должны стремиться к тому, чтобы пользователи при наборе кода мыслили линейно. Вспомните, как современный траекторию набора текста, подобно тому, как современный ЦП-ориентированный код избегает ветвлений и переходов.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Новости

Книга «Изучаем vi и Vim. Не просто редакторы. 8-е изд.»

Время на прочтение14 мин
Количество просмотров12K
image Привет, Хаброжители!

Среди текстовых редакторов, используемых программистами, самыми важными является vi и его вариации. В обновленном издании пользователи Unix и Linux изучат основы редактирования текста как в vi, так и в Vim (vi improved), прежде чем перейти к более продвинутым инструментам в каждой из программ. Авторы Арнольд Роббинс и Элберт Ханна описывают основные новейшие версии Vim.

Если вы программист или компьютерный аналитик, либо работаете с веб- или консольными интерфейсами, Vim упростит решение сложных задач. Вы освоите многооконное редактирование, глобальный поиск/замену и прочие мощные инструменты для программистов, а также научитесь писать интерактивные макросы и сценарии, расширяющие возможности программы.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии30

Знакомство с упорядочиванием в Emacs на примерах

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.4K

В этой статье мы разберём использование в Emacs различных команд для упорядочивания строк, абзацев и страниц. В руководствах к Emacs и Elisp эти команды описаны достаточно подробно, так что мы просто познакомимся с практическими примерами их применения.
Читать дальше →
Всего голосов 54: ↑53 и ↓1+52
Комментарии2

Как написать свой режим для GNU Emacs и опубликовать его в MELPA

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров2K

Некоторое время назад я разработал режим GNU Emacs для редактирования конфигурационных файлов операционной системы Embox. Кроме всестороннего изучения Emacs Lisp мне потребовалось разобраться со структурой модуля режима, а также процессом и требованиями к публикации пакетов в MELPA, наиболее популярном архиве пакетов для GNU Emacs. В этом руководстве я расскажу, что нужно знать, чтобы написать свой собственный режим, и как опубликовать свой собственный пакет.

Запускаем свой Emacs!
Всего голосов 13: ↑13 и ↓0+13
Комментарии0

Истории

«Грамотный DevOps»: пишем конфигурацию с помощью Emacs, Org и Jinja

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.3K

Если совсем коротко: «грамотный DevOps» (Literate DevOps) – это использование принципов «грамотного программирования» (Literate programming) для работы с инфраструктурой в виде кода. Термин Literate DevOps придумал Говард Абрамс, и он же показал, как реализовать его с помощью Emacs и Org.

Теперь подробнее.

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии3

Учимся заново печатать вслепую на раздельной клавиатуре

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров7.7K

Недавно я купил раздельную клавиатуру Kinesis Advantage 360, потому что заранее хочу позаботиться о здоровье своих запястий и нервов. Я запросто могу тратить по шестьдесят с лишним часов в неделю на игры, кодинг, работу и написание статей за клавиатурой, поэтому боль в запястьях мне знакома. Особенно там, где соединяются на правой руке большой палец и запястье. Кроме того, у меня немеют мизинец и безымянный палец из-за воспаления локтевого нерва. Боль уходит и возвращается, но я надеюсь, что занявшись эргономикой, я смогу существенно её уменьшить или полностью избавиться от неё. Пока мой опыт был вполне положительным, но в процессе у меня возникли сложности с эргономичной клавиатурой, которыми бы я хотел поделиться.
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии16

Воспитай свой второй мозг. Увеличь продуктивность

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

Наш мозг — крайне загруженная вещь. Наш мозг обрабатывает всю эту ежедневную суматоху: навестить бабушку, купить 100 500 продуктов в магазине, уповать о падении рубля и так далее. В этом урагане информации мы забываем по истине важные для нас вещи.

Хотели бы вы иметь второй мозг? Мозг, способный запомнить всё. Мозг, в котором содержится вся полезная информация из книг, статей, видео, полученная вами?

Звучит прекрасно, не так ли? Может, когда‑то и казалось сказками, однако не сейчас.

Хочу всё знать!
Всего голосов 70: ↑63 и ↓7+56
Комментарии111

Программируем Arduino Uno на Rust: настраиваем среду и моргаем светодиодом

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

Кто-то из вас наверняка задавался вопросом: а нельзя ли программировать Arduino на чём-то более современном и удобном? Вот и я задавался. И нашёл Rust (не то, чтобы я о нём не знал). И на нём можно программировать микроконтроллеры AVR и платы Arduino, построенные на них. И здесь я расскажу о том, как настроить среду разработчика на Rust в Linux, GNU Emacs и Visual Studio Code и как запрограммировать Arduino Uno на моргание светодиодом.


#![no_std]
#![no_main]

use ruduino::Pin;
use ruduino::cores::current::{port};

#[no_mangle]
pub extern fn main() {
    port::B5::set_output();

    loop {
        port::B5::set_high();
        ruduino::delay::delay_ms(1000);
        port::B5::set_low();
        ruduino::delay::delay_ms(1000);
    }
}
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии24

Зачем нужен протокол языкового сервера (LSP)?

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

LSP (протокол языкового сервера) сегодня весьма популярен. Есть стандартное объяснение этого феномена. Возможно, ранее вам уже попадалась эта картинка, у нас также являющаяся заглавной.

Считаю, что такое стандартное объяснение популярности LSP – неверное. Ниже предложу вам альтернативную трактовку.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии7

Как избавиться от Postman с помощью Emacs Org Mode

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

К старту курса по тестированию на Python при помощи шаблона Read the Docs, пакетов restclient, ob-restclient и Org Mode в Emacs напишем красивую, полезную документацию API, которая генерируется автоматически и легко отображается на статическом сайте.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии7

Как я пишу на LaTeX в Emacs быстрее, чем от руки

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


Когда Жиль Кастель задокументировал метод ведения математических записей в Vim в реальном времени, многие захотели добиться тех же скорости и удобства ввода LATEX в Emacs1.

Я работаю на LaTeX весь день: уравнения пишу так же быстро, как на бумаге. И даже быстрее. Почему? За размышлением всегда следует работа пальцев. И это — та ситуация, когда количество переходит в качество. Хотя мои рекомендации — лишь 90 % решения.
Читать дальше →
Всего голосов 53: ↑51 и ↓2+49
Комментарии9

НЕ VIM, а круче (xah fly keys) или XAH FLY KEYS. Большой выпуск

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

Насколько я знаю многие программисты используют VIM, а некоторые также используют VIM, но они это делают в EVIL (злом) режиме, это значит, что эти люди понимают все прелести VIM (быстрое редактирование текста без использования мыши, наличие нескольких режимов и т.д.). Но также я знаю, что VIM был сделан несколько миллионов лет назад, для программистов того времени, поэтому VIM использует не все возможности которые мог бы, например: Клавиша для входа в командный режим находится фиг знает где, в самой жопе самом углу клавиатуры (и. да я знаю что это можно легко поправить в .vimrc), также если я захочу поменять свой редактируемый файл, то мне нужно:

Мне это интересно!
Всего голосов 2: ↑2 и ↓0+2
Комментарии20

Что не так с Лиспом?

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

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

Позвольте мне начать с пары слов для тех кто не в курсе. Lisp - это семейство языков, включая Common Lisp, Emacs Lisp и несколько диалектов, которые...

Так что же не так с лиспом?
Всего голосов 29: ↑20 и ↓9+11
Комментарии207

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

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

Emacs — 6 трюков для продуктивной работы

Время на прочтение4 мин
Количество просмотров13K
Ранее я уже писал об использовании Emacs в качестве C++ IDE и другом техническом оснащении. Однако, я не обращал особого внимания на то, что использую Emacs и для работы много с чем ещё. Честно говоря, я не смог бы пользоваться этим редактором в полной мере, не будь в нем возможностей, которыми я здесь поделюсь. Также расскажу о настройках, которые я использовал в своём окружении, чтобы запустить всё это «из коробки» (буквально, копируя .emacs).

Чтобы начать


tl; dr: Особо нетерпеливые этот раздел могут пропускать и сразу переходить к настройкам Helm.
У меня установлен Emacs — 26.1, собранный из исходников. Вам это не потребуется. Все пакеты установятся из пакетного менеджера Emacs. Запускаете:

M-x list-packages
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии3

Современные IDE. Однозначно D, в какой-то степени E и уж точно не I

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

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


У пользователей IDE, и разработчиков IDE есть проблемы с осознанным пониманием своих инструментов. Используются интуитивно и как попало. На удивление (приятное), такое использование почти не вступает в конфликт с незнанием, хоть и порождает соответствующие холивары на форумах.


Сейчас разберем, как обстоят дела в разработке с инструментами, что не так с понятием "IDE", и какие инструменты уже должны были появиться, но пока не были разработаны.


image

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

Голосование по второй бета-версии Revised 7 Report on Algorithmic Language Scheme (Large Language)

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


Открыто голосование по содержанию второй (из восьми) бета-редакции алгоритмического языка Scheme R7RS-large (Tangerine Edition), а также сбор предложений по третьей бета-редакции (Orange Edition).
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

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

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

Часто приходится видеть, как новички пробуют 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
Изменить настройки темы

Вклад авторов