Сайт Димы Джуса / блог / …

Начало пути к Emacs

20 февраля 2007
Теги: , , , , .

На каникулах я решил осилить GNU Emacs. Успешно.

К изучению этой системы меня подтолкнули доводы ESR в TAOUP в пользу Emacs.

До этого я был поклонником самой популярной ныне разновидности vi — vim — и я до сих пор считаю, что набор и редактирование текста в нём очень эффективно (эффективнее Emacs), а модальный интерфейс имеет в вопросе скорости набора преимущество по сравнению с достаточно длинными клавиатурными комбинациями Emacs.

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

В последнее время vim, конечно, очень быстро и круто развивается, к нему пишут кучу скриптов и дополнений, приближающих возможности vim к Emacs. Vim обрастает и дополнениями на своём скриптовом языке, и новыми встроенными возможностями. Часто чморят Emacs за мифическое отступление от традиций Unix и кивают на vim в качестве труъ-редактора. На деле же vim плавно теряет самобытность и превращается в Emacs с модальным интерфейсом; модальность же vim'а при увеличении количества одновременно используемых расширений и дополнительных фенек перестаёт играть в пользу юзера, так как все команды управления завязать на /[A-z]*/ невозможно и запомнить подобные команды, когда они не связаны с базовой работой с текстом, не легче, чем длинные «цепи» из Emacs. А сочетания на CTRL есть ныне и в vim.

Emacs гораздо более труъ, чем современные vi-потомки, ибо является лишь средой для выполнения произвольного elisp-кода и предоставляет бòльшую гибкость просто на своём конструктивном уровне.

Сила Emacs в том и состоит, что Emacs'а на самом деле нет.

Elisp'а не надо бояться и кивать на использование Python и Perl в качестве скриптовых языков в vim: использование elisp во многом обусловлено историей развития Emacs, да и не так он сложен, как кажется сначала.

Для Emacs куча дополнений. Огромная куча.

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

Я не сказал о львиной доле интересных дополнений для Emacs =\

В общем, для Emacs конечно пока больше всяких вкусностей и полезностей (во всяком случае, для меня) и это, наверное, главная причина, по которой его стоит попробовать.

Входная сложность Emacs гораздо выше, чем у vim. То есть писать текст в нём можно через пару минут после знакомства, но использовать всю ту груду дополнительных средств учить придётся долго (поначалу возможно будут и вовсе непонятны некоторые концепции Emacs или терминология (например, yank в vim значит "скопировать", а в emacs - вставить)).

Возможно, неплохим началом после некоторого освоения будет набор M-x customize и изучение имеющегося там. Чтобы эффективно использовать Emacs, нужно знать, что в нём есть :) Частым вопросом в gnu.emacs.help является "Как и для чего можно использовать Emacs?". Не уверен, что для уверенного владения Emacs'ом обязательно нужно знание elisp, скорее немного здравого смысла и умение читать.

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

Да поможет вам EmacsWiki.

Комментарии:

Roman Lagunov, 06.04.2007

Хороший обзор.

Оставить комментарий:





4+x−3−5=3,

Бесконечно много решений? F5!

← 2 семестр Знак →