Emacs Starter Kit

    Emacs. Большая и сложная программа. Ему как ничему другому подходит это определение. Эмакс был создан очень давно в лаборатории искуственного интллекта MIT, он несет в себе гены очень своеобразной культуры лисп-хакеров былых времен. С тех пор он не раз переписывался, улучшался, дополнялся и обрастал тысячами расширений в течение десятков лет. Эмакс, если и был когда-то мощным текстовым редактором, сейчас стал некоей универсальной программой, в нём можно делать абсолютно всё что угодно, если это хотя бы немного затрагивает собой задачу отображения или редактирования текста, и даже больше. Людям знающим универсальность играет на руку, ведь одной программой можно делать тысячу разных дел, при этом не прилагая усилий для переучивания к разным интерфейсам. Людей, впервые запустивших эмакс подобная универсальность и непривычный интерфейс поначалу пугает. Научиться пользоваться эмаксом, понять его идею и проникнуться ею задача непростая, трудоемкая и долгая (как говорится, пологая кривая обучаемости).

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


    1.1 Настройка


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


    1.2 Находка


    Всё то время, что я пользовался эмаксом я именно так и поступал: собирал конфиг по кусочкам из тысячи разных мест—форумы (в основном ЛОР), хабр, эмакс-вики, статьи, репозитории с настройками продвинутых пользователей (в основном Alex Ott), и т.п. В итоге конфиг разросся и превратился в страшную кашу. В общем, всё было плохо пока я не наткнулся на замечательный скринкаст Meet Emacs от Peepcode. В скринкасте автор не усердствует с базовой настройкой, а сразу после установки эмакса копирует в свою директорию .emacs.d репозиторий emacs-starter-kit. Сперва я скептически отнёсся к такому подходу, но попробовав starter kit раз, удалив, и попробовав во второй раз я проникся: его оказалось достаточно чтобы просто пользоваться эмаксом, не задумываясь о его серьезных улучшениях. Всё что мне осталось—установить через пакетный менеджер эмакса и операционной системы необходимые мне расширения, да добавить настройки шрифтов и клавиатуры для нетбука и настольного компьютера.


    2 Emacs Starter Kit


    Оригинальный Emacs Starter Kit (ныне «центральный репозиторий» оного на github.com)—это личный конфиг Фила Хагельберга (Phil Hagelberg aka Technomancy), собранный им за долгие годы использования эмакса. Сейчас же kit—это сотни форков репозитория и тысячи следящих за ним на гитхабе.

    Starter Kit рассчитан на легкую расширяемость пользовательскими настройками и на легкую переносимость одной конфигурации между машинами пользователя—так что владельцам нескольких компьютеров должно понравиться.

    Для работы требуется GNU Emacs версии 22 или выше. С форками вроде XEmacs работать не будет.


    2.1 Установка


    Установка Emacs Starter Kit элементарна: клонируйте репозиторий с гитхаба в директорию .emacs.d (предварительно сохранив свои старые настройки и удалив .emacs):

    git clone http://github.com/technomancy/emacs-starter-kit.git ~/.emacs.d
    

    Вуаля. Запускайте Emacs.

    Чтобы запустить эмакс с kit'ом на посмотреть—склонируйте репозиторий в какую-нибудь другую директорию и запустите эмакс командой:

    emacs -q -l ~/emacs-starter-kit/init.el
    


    2.2 Устройство


    В директории .emacs.d kit'а есть несколько основных файлов:

    .emacs.d/
      ...
      elpa/
      init.el
      starter-kit-bindings.el
      starter-kit-defuns.el
      starter-kit-elpa.el
      ...
      ... и пользовательские
      ...
      haru.el
      haru/
        color-theme.el
        info.el
        irc.el
        jabber.el
      haru-desktop.el
      harubook.jolicloud-domain.el
    

    Самый главный файл—это init.el, с него начинается загрузка. Он отключает графический интерфейс, загружает пакетный менеджер эмакса ELPA, и, при первом запуске, доустанавливает из сети несколько полезных пакетов (конечно, можно автоматически доустанавливать еще и свои любимые пакеты).

    Следующими подгружаются файлы starter-kit-*.el—в них находятся всевозможные дополнительные функции, настройки комбинаций клавиш и режимов для некоторых динамических языков—в общем всё то, что делает эмакс более удобным, чем по-умолчанию.

    В последнюю очередь загружаются пользовательские файлы:
    • Файл пользователя—файл с именем текущего пользователя с расширением .el на конце, например, haru.el

      Starter Kit настолько хорош сам по себе, что в этом файле у меня всего
      лишь одна строка лиспокода, которая включает мою цветовую тему.

    • Директория пользователя—директория с именем текущего пользователя с множеством .el файлов внутри, например,
      haru/
        color-theme-dzhan.el
        info.el
        irc.el
        jabber.el
      

      Я держу в этой директории файлы с настройками режимов—IRC, Jabber, Info, и еще самодельную цветовую тему.

    • Файл с настройками машины пользователя—чтобы узнать имя этого файла достаточно вычислить в эмаксе значение функции (system-name) и добавить .el в конец, например: harubook.jolicloud-domain.el для нетбука и haru-desktop.el для десктопа.
      Я держу в нём настройки дефолтного шрифта и настройку кнопок alt и command для яблочной клавиатуры.


    2.3 Фичи


    2.3.1 Emacs Lisp Package Archive


    Пакетный менеджер для эмакса. Уже сейчас в больше сотни популярных расширений, автоматически поддерживает зависимости между ними. Элементарен в использовании: M-x package-list-packages, i—отметить для установки, x—установить. Пакеты устанавливаются в директорию ~/.emacs.d/elpa.

    ELPA

    Для автоматической установки нужных пакетов при первом запуске эмакса нужно отредактировать переменную starter-kit-packages в файле starter-kit-elpa.el. Мне, например никак без Clojure, и я активно пользуюсь сервисом gist.github.com:

    (defvar starter-kit-packages (list 'idle-highlight 'ruby-mode
      'clojure-mode 'clojure-test-mode 'swank-clojure 'slime 'slime-repl
      'inf-ruby 'css-mode 'yaml-mode 'magit 'gist))
    

    Starter Kit развивается уже очень давно и из elpa-to-submit/, бывает, удаляют код некоторых пакетов, но это ничего—удаленный код перетекает в ELPA. Если с очередным обновлением (я имею в виду pull/merge с «центральным» репозиторием) возникают проблемы—удалите всё из директории ~/.emacs.d/elpa и запустите M-x starter-kit-elpa-install.


    2.3.2 IDO


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

    ido-find-file

    Еще одна жутко удобная фича—imenu, позволяет прыгнуть к определению символа в исходнике, вызывается по C-x i или C-x Tab

    ido-imenu


    2.3.3 IBuffer


    Более функциональная замена стандартной переключалке буферов.

    ibuffer


    2.3.4 Полоска сбоку


    Полоска сбоку, показывающая конец буфера. Очень удобная.


    2.3.5 Редактирование под sudo


    Уж не знаю, один ли я такой, но раньше мне приходилось запускать vi под sudo специально для редактирования системных файлов. В kit'е есть функция M-x sudo-edit.


    2.3.6 Lambda


    Лямбды в лиспокоде отображаются греческими буквами λ. Только вчера добавилась замена fn на ƒ в исходниках Clojure.

    fn-in-clojure


    2.3.7 Улучшения в режимах динамических языков


    Множество всевозможных удобств для пользователей динамических языков: JavaScript, Emacs Lisp, Clojure, Common Lisp, Ruby, Perl. Сам-то в основном лиспами пользуюсь, поэтому улучшения в режимах лиспа и приведу.

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

    Показываются аргументы функций Emacs Lisp'а в минибуфере.

    show-elisp-args


    2.3.8 Отключенный графический интерфейс


    Нет скроллбара, нет тулбара, нет меню, нет диалоговых окон. Всего этого нет, ибо экономия движения—наше всё. Графические элементы управления требуют мышь, а чтобы дотянуться до мыши нужно оторвать руку от клавиатуры, в случае меню еще потратить уйму времени на поиск нужного пункта. От того, что эти элементы управления отключены—от пользователя не убудет—функционал отключеных элементов продублирован в интерфейсе. Во время редактирования если и используются меню, то это меню текущих режимов, а они доступны в полоске modeline. Скроллбар прекрасно заменяется стандартными клавишами для перемещения по буферу и колёсиком мыши. Тулбар же просто не нужен—выполнить любое действие проще через кейбиндинг.


    2.3.9 Комбинации клавиш


    Честно говоря, комбинации клавиш в Emacs Starter Kit мне не очень нравятся, тем более, что они не сильно отличаются от стандартных. Так что я приведу некоторые свои комбинации (которые можно найти в файле starter-kit-bindings.el в моём форке kit'а на гитхабе: http://github.com/zahardzhan/emacs-starter-kit).

    Сперва, однако, стоит вспомнить о том, что Emacs—древнейшая ныне живая и широко используемая софтина, и оригинальные кейбиндинги рассчитаны вовсе не на современные PC/Apple/… клавиатуры, а на клавиатуры почивших 20 лет назад лисп-машин (например, в мануале по Zmacs для Ti Explorer 1985 года можно найти те же самые комбинации, что используются сейчас). Вспомнить и принять меры, иначе незадачливый эмаксер рискует стать жертвой «синдрома эмаксового мизинца»—из-за активного использования клавиши Control, которую на современных клавиатурах жуть как неудобно нажимать несколько сотен раз в час. Есть много способов сохранить здоровье своих рук:

    • Самый простой: поменять Caps Lock и Control. Если вы не счастливый обладатель Happy Hacking Keyboard—меняйте, даже не думайте. Я пользуюсь Ubuntu—в ней поменять не проблема—ищите опцию в параметрах системы.
    • Купить нормальную клавиатуру. Из нормальных мне известные, разве что эргономичная микрософтовская клава и клавиатуры Kinesis.
    • Поменять кейбиндинги в эмаксе. Ибо большинство дефолтных—не фонтан. Но особо усердствовать не стоит—кейбиндинги эмакса используются во многих местах, в первую очередь в bash и zsh.

    Итак, расскажу о некоторых своих комбинациях:

    C-m
    Альтернатива клавише Enter. Комбинация особенна полезна как окончание в цепочке, в которой все клавиши нажимаются вместе с Control'ом—чтобы не отпускать его и тянуться к Enter, например я переключаюсь между буферами даже не отжимая Control: C-Tab C-s C-s C-s C-m. Еще это комбинация полезна как замена M-x: C-x C-m, если до альта долго тянуться.

    C-w
    Практически во всех эмуляторах терминалов эта клавиша удаляет слово слева от курсора, в эмаксе же она не делает ничего хорошего. Я забиндил на неё удаление слова назад и вырезание региона, если он выделен—это очень удобно, Backspace практически не нужен. Ко всему, M-w копирует выделенный регион.

    C-g
    Забудьте об Esc. Если что-то пошло не так—это клавиша универсальной отмены.

    C-q
    Замена C-/. Отмена редактирования. Таким образом ряд сочетаний, который в стандартных оконных системах расположен внизу— C-z, C-x, C-c у меня переезжает наверх— C-q, C-w, M-w. (Если кто подскажет как совместить эту клавишу с C-g—буду очень благодарен).

    C-Tab
    Обычно я держу очень много буферов и часто между ними переключаюсь. Нажимать для этого двумя руками C-x b—невероятная расточительность.

    S-Tab, C-S-Tab
    Переход на следующее/предыдущее окно. Быстро и удобно. Таким образом, три клавиши, расположенные вплотную одна-над-другой используются для переключения между буферами.

    C-x C-k
    Убивать буфер гораздо легче не отпуская клавишу Control—так можно в разы быстрее убить сразу несколько буферов.

    C-s, C-r
    Эти клавиши привязаны к поиску по регэкспу вперёд и назад. Помнится, один из авторов Макинтоша, Джеф Раскин, положил подобный поиск в основу интерфейса компьютера для работы с текстом Cannon Cat. Это конечно, не Cannon Cat, но тоже ничего.
    Эти клавиши используются не только для поиска в буфере, но и для перехода к следующему/предыдущему элементу в минибуфере в режиме ido—для переключения между буферами или для поиска и открытия файла. И еще в режиме выделения региона.

    S-Space
    Очень умное автодополнение. Иногда достаточно просто раз пять нажать эту комбинацию и программа чудесным образом напишется сама.

    M-Space
    Переключение между языками. Две легко доступные, вплотную расположенные клавиши—это лучший вариант.

    F3, F4, F4
    Начало записи макроса, конец записи макроса, вызов макроса.

    В общем, если пользуетесь Эмаксом—очень рекомендую поставить Emacs Starter Kit—с ним Эмаксом даже можно пользоваться :)

    Литературную версию программы Emacs Starter Kit смотрите в моем блоге.

    Похожие публикации

    Средняя зарплата в IT

    120 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 6 371 анкеты, за 1-ое пол. 2021 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

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

      +3
      спасибо. то что надо. у меня уже была пара неудачных попыток познакомиться с Emacs'ом.
      обязательно попробую, как будет время.
        0
        «В отличие от vi, главная прелесть которого, на мой взгляд, в том, что в нём всё «из коробки» прекрасно настроено—бери да пользуйся, эмакс в своем изкоробочном состоянии далеко не так хорош и удобен, как мог бы быть.»

        я бы кстати не согласился. не знаю как в сравнении с Emacs, но сам по себе vi (vim) вовсе не так уж хорош в изкоробочном состоянии. помнится, мой первый месяц работы сводился в основном к настройке и достройке (которая конечно и сейчас продолжается..)
          0
          а ещё, меня давно мучает вопрос. вот в Emacs много комбинаций с естесвенной мнемоникой, а какая она у комбинации C-g?
            0
            Возможно, «Get out».
              0
              ну это странно. слово get само по себе слишком универсальное — в зависимости от того, что стоит после него, оно может означать совершенно разные вещи. в Vim'е например клавиша g имеет как раз смысл get и предполагает нажатие ещё одной клавиши, которая и определяет дейтсвие.
                0
                С мнемоничностью у vi куда лучше, чем у эмакса. Тем мне vi и нравится.
                  0
                  хех. ну я конечно не к тому, чтобы vi выпятить…
                  очень круто, когда мнемоничность сочетается с эргономичностью.
                  например клавиши C-p, C-n, C-b, C-f очень легко запомнить. но возможно ли пользоваться ими вместо стрелочек??
                    0
                    Через раз. Иногда стрелками удобнее. А так — на них много завязано в куче режимов. У них же еще куча производных: M-p M-n M-b M-f C-M-n C-M-p…
                      +1
                      понятно. но вообще в ключе использования Emacs/Vim стрелки, numpad и мышь — это зло… (:
        +3
        Emacs: почувствуй себя пианистом :) Статья о оригинальной клавиатуре под которую разрабатывались все хоткеи.
          0
          Угу. Использовал ту статью для подготовки.

          По ходу залез даже в мануал Zmacs Editor Reference от Texas Instruments, 1987 г.
            +2
            А если нажать Hyper+Super+Meta+End, произойдёт нечто ужасное?
              0
              Боюсь, на моей клавиатуре не найдется столько кнопок.
                0
                Я про ту, что на фото =)
            0
            С emacs связана очень забавная ситуация. Дело в том что иконку приложения к ней ( commons.wikimedia.org/wiki/File:Emacs-icon-48x48.png ) нарисовал человек по имени Жилин Андрей. И несмотря на то, что я также рисую иконки и интерфейсы для опенсорс проектов и зовут меня точно так же, но я — не он :) Это, канеш, удивительное совпадение.
              +3
              S-Space
              Очень умное автодополнение. Иногда достаточно просто раз пять нажать эту комбинацию и программа чудесным образом напишется сама.

              Эмааакс! :)

              Спасибо за статью, попробуем этот пакет.
                0
                Указанные комбинации клавиш настроены в моём форке. В kit'е Technomancy их нет.
                0
                Почитал древний мануал. На оригинальной клавиатуре Backspace был на месте Caps Lock. Вместо C-w сейчас бы получился M-Caps Lock.
                  +2
                  А вы не в курсе, как решить ситуацию с не-ascii именем пользователя в системе (Vista Home Premium). Из-за этого просто не могут открыться файлы в .emacs.d. Может, где-то кодировку нужную включить?
                  • НЛО прилетело и опубликовало эту надпись здесь
                      +1
                      а вот для Vim'а вам такое не интересно? (;
                      habrahabr.ru/blogs/vim/53435/
                      • НЛО прилетело и опубликовало эту надпись здесь
                    • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        По сравнению с Эмаксом слака-ребёнок.
                        • НЛО прилетело и опубликовало эту надпись здесь
                            0
                            Про станок не понял.

                            Я имел в виду, что эмакс древнее слаки.
                            • НЛО прилетело и опубликовало эту надпись здесь
                                0
                                Эмакс — не блокнот. В оригинале, лет 25-30 назад, он был очень сильно интегрированной с операционной системой (Explorer и Genera) средой разработки. Те операционные системы умерли, так что сейчас эмаксу особо интегрироваться некуда — зато теперь расширения интегрируются в него.
                                • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        [blockquote]
                        Уж не знаю, один ли я такой, но раньше мне приходилось запускать vi под sudo специально для редактирования системных файлов.
                        [/blockquote]
                        sudoedit же. И там уж какой $EDITOR в системе выставлен, такой и будет использован.
                          +1
                          Так то ж из эмакса надо выйти!
                          0
                          Кстати «труклава для труемаксеров»
                          en.wikipedia.org/wiki/Space-cadet_keyboard
                          • НЛО прилетело и опубликовало эту надпись здесь
                              +1
                              С дополнениями беда, пробовал все методы, что нашел в интернете. Все не дотягивают до нужного уровня, а PySmell не завелся :(
                              • НЛО прилетело и опубликовало эту надпись здесь
                                  +2
                                  честно говоря, я тоже задавал себе этот вопрос.
                                  Тот же IPython прекрастно дополняет все что хочешь :)
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                      0
                                      искаропки нету, но есть в ешелле, наверняка можно как-то связать.
                                        +1
                                        не надо трогать ешелл,

                                        надо смотреть в сторону hippie-expand (смотрите коммент ниже)
                                        +1
                                        есть,

                                        можете посмотреть документацию к hippie-expand. Один из потенциальных источников — пути к файлам в текущей директории.
                                          +1
                                          В статье я привёл комбинацию S-Space — это и есть hippie-expand.
                                            0
                                            Ой, не, S-Space — это dabbrev-expand. Hippie-expand мне не понравился, но в Starter Kit он повешен на M-/.
                                        +1
                                        вы не совсем представляете, о чем идет речь.

                                        ipython держит в себе целиком интерпретатор, которому вся информация доступна. Текстовые же файлы с кодом — совсем другой разговор. Их надо парсить, но не выполняя и не запуская интерпретатор.

                                        Для динамических языков задача осложняется тем, что информации о типе переменных до рантайма может и не быть.

                                        Задачи же автодополнения в Емаксе, например, для Java вполне успешно решались в JDEE.

                                        Единственное действительно разумное решение — развивать обобщенный комплект для построения парсеров языков типа Cedet. В настоящий момент поддержка Питона в нем оставляет, мягко говоря, желать лучшего; но в тематических почтовых рассылках велось и ведется обсуждение работы по расширению поддержки вообще всех языков — Cedet отныне входит в стандартный комплект Емакса.
                                  0
                                  Ой, хоть и не совсем в тему, но лучше спрошу здесь :-)

                                  Сейчас мечусь между емаксом и вимом. Вим в целом устраивает из коробки (установлено 2 плагина и конфиг меньше 50 строк).

                                  Недавно попробовал перейти на емакс. Пока только по встроенному тьюториалу. Сразу бросается в глаза «многословность» комбинаций клавиш. Мне кажется, что многие действия в нем требуют в 2–3 раза больше нажатий, чем в виме. Это отталкивает.

                                  А что делает работу в емаксе эффективнее? Именно сам процесс редактирования. За что можно выбрать именно его, если правка текста в нем требует больше усилий (на первый взгляд)? Ведь не просто так люди с вима на емакс, бывает, переходят.
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                      –2
                                      Самое странное, что для самых разных целей он подходит отлично. А вот в качестве редактора как-то не очень.
                                        0
                                        вот люблю оригинальных людей.
                                      0
                                      Отсутствие режимов делает эмакс эффективным. Я быстрее нажму C-w, чем Esc d b i. Или, чтобы найти что-нибудь: C-s asdfg, чем Esc / asdfg Enter.
                                        0
                                        скажем так, задачи в виме и емаксе решаются вообще все. Нет принципиальной разницы по числу команд редактирования или их выразительности. Вероятнее всего, в емаксе их даже поболее — потому что писать их на Лиспе все же легче.

                                        Однако, это не делает никакой погоды в контекте принятия решения об использовании того или иного редактора.

                                        Разница в архитектуре фундаментальная. Прелесть Емакса — в быстрой работе с буферами, отсутствии необходиомости выходить из приложения и единообразии работы с любой информацией вообще. Строго говоря, для решения любых задач программирования выходить из редактора не требуется.

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

                                        плюс vim — легковесность. Если Емакс — это такая доминанта в работе кодера, то vim старается занимать как можно меньше места между разработчиком и окружающей экосистемой.
                                        –2
                                        Какой самый лучше Emacs под винду?
                                          0
                                          GNU Emacs 23.2
                                            0
                                            А не XEmacs? Я совсем не хочу в убогой виндовой консоли кодить. И с cygwin связыватья не хочу.
                                              0
                                              У GNU Emacs под виндой графический интерфейс.
                                          0
                                          Сидел некоторое время на Emacs'e, сначала это была пытка, столько сочетаний клавишь запомнить… потом более менее привык, кодил в нем на асме, очень оригинально емакс себя ведет с асмом конечно, опять долго привыкал, настройкой заниматься конечно я даже и не думал. Вот сейчас еще разок попробую, автор спасибо за статью.
                                            0
                                            Когда-нибудь я потрачу хренову тучу времени, и все-таки заставлю себя разобраться с этим редактором этой операционной системой.
                                              0
                                              <имхо>
                                              Поменять местами Ctrl и капслок — не лучшая идея. Лучше менять Ctrl и Alt, причём оба.
                                              Хотя лично у меня на клавиатуре CapsLock ⇔ LCtrl, Enter ⇔ RCtrl. Для симметрии. Но так стоит делать только если бо́льшую часть времени проводить в консоли, там Enter не нужен.
                                              </имхо>
                                              //вимер.
                                                0
                                                Что на что менять сильно зависит от клавиатуры. Я пользуюсь клавой Apple — меняю Alt на Command и Caps Lock на Control. А вимерам так вообще Esc поближе надо ставить.
                                                  0
                                                  А у вимеров есть C-[ (стандартная фича реадлайна). С ремапленным Ctrl вполне удобно.
                                                  0
                                                  гм… а где у вас тогда Enter? С-M?
                                                  я вот на Enter замапил Esc в виме — имхо очень удобно и довольно естественно (;
                                                  (а ещё Ctrl на Caps)
                                                    0
                                                    C-J, как и должно быть в readline. И RCtrl за пределами консоли.
                                                  0
                                                  Хых, постоянно пользуюсь Emacs уже шестой год, и только благодаря вашей статье осознал, что у меня болят мизинцы :(
                                                    +1
                                                    Простите за занудство, но по английски он зовется «имакс», а не «эмакс».
                                                      0
                                                      А как повесить на C-w одновременно убить слово и убить регион? Можно код пожалусто
                                                        +1
                                                        Для transient mode:

                                                        (defun kill-word-or-region (&optional arg)
                                                          (interactive "P")
                                                          (if (use-region-p)
                                                              (kill-region (region-beginning) (region-end))
                                                            (kill-word arg)))
                                                        


                                                        Если не используете transient mode (когда регион подсвечивается), то ваш вопрос не имеет смысла, т.к. регион (метка-точка) присутствует практически всё время.
                                                        0
                                                        Зачем нужен sudo-edit, если из коробки есть tramp? При открытии файла пишем в путь /sudo::/path/to/some/file и открываем файл через sudo. Также с его помощью можно править файлы через ssh.

                                                        В виме помоему можно как-то перенаправить файл для сохранение в судо.
                                                          0
                                                          :w !sudo tee %
                                                          появляются мысли попробовать emacs, останавливает лишь то, что vi сам по себе есть практически везде (такое положение вызвано требованием POSIX)
                                                          в случае же с emacs (толстый он, однако) страдает унификация, не тащить же его за собой везде (да-да, щас меня закидают шапками, ведь есть ssh)
                                                          от себя добавлю, что bindkey -e (обычно настройка по-умолчанию) удобен и является хорошей предопосылкой к переезду на emacs (ехал emacs через emacs)
                                                            0
                                                            Кстати, был сильно и неприятно удивлен, не обнаружив на загрузочном диске для установки генту вима. Был только емакс, а в руководстве по установке использовался nano.
                                                            Да и в убунте после установки, кажется, его не было (но тут могу просто не помнить, даже если не было — я поставил сразу после установки).
                                                            Вот вам и требование POSIX.
                                                              0
                                                              Gentoo rocks! Свалил с неё три месяца назад на фрю…
                                                              0
                                                              Как мне уже надоел этот аргумент! Ну никто ведь не мешает побыстрому загуглить команду установки бинарника в том дистрибутиве в который вы попали и установить его.
                                                              0
                                                              Так фишка как раз в том, чтобы не переоткрывать то что уже открыто. У вас разве не бывало ситуаций, когда открываешь например системный конфиг (под пользователем) с целью просто просмотреть, а потом натыкаешься на косяк, забываешь что под пользователем, начинаешь редактировать, потом сохраняешь, а оно пишет что нет прав, после чего текст необходимо скопировать, открыть файл уже под рутом и вставить то что написал. А sudo-edit позволяет обходить всё это вызовом одной простой команды, либо хоткея :)
                                                              0
                                                              BTW, клавиатура для профессионала, первое дело, тыц, ещё
                                                                0
                                                                жутко чешется, хочется взять и написать, дома и на работе ms natural ergonomic 4k, пришлось забросить в шкаф свою любимую mitsumi classic
                                                                  0
                                                                  Никогда не понимал всяких пакетных менеджеров (old school, да) и прочих стартер китов.
                                                                  Мой конфиг: bazaar.launchpad.net/~lol2fast4u/+junk/emacs-dir/files
                                                                    +1
                                                                    Мой опыт показывает, что вы всё равно, рано или поздно, придёте к почти-такой-же конфигурации. Только потратите на это дооооолгие месяцы. Код kit'а будет хорошей базой для расширения. На гитхабе сотни форков — в них можно посмотреть хорошие решения.

                                                                    Насчёт пакетных менеджеров. В Убунте я пользуюсь пакетным менеджером apt. Я немного пишу на Clojure — пользуюсь пакетным менеджером leiningen (поверх maven). В эмакс я ставлю даже больше пакетов, чем в убунту, поэтому отказ от менеджера приведет единственно только к неоправданному гемору. К тому же многие новые пакеты эмакса рассчитаны на пакетный менеджер ELPA — например, пакеты для clojure.
                                                                    0
                                                                    Спасибо, очень хотелось попробовать emacs
                                                                      0
                                                                      Отличная статья!

                                                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                      Самое читаемое