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

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

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

Эмааакс! :)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

плюс vim — легковесность. Если Емакс — это такая доминанта в работе кодера, то vim старается занимать как можно меньше места между разработчиком и окружающей экосистемой.
А не XEmacs? Я совсем не хочу в убогой виндовой консоли кодить. И с cygwin связыватья не хочу.
У GNU Emacs под виндой графический интерфейс.
Сидел некоторое время на Emacs'e, сначала это была пытка, столько сочетаний клавишь запомнить… потом более менее привык, кодил в нем на асме, очень оригинально емакс себя ведет с асмом конечно, опять долго привыкал, настройкой заниматься конечно я даже и не думал. Вот сейчас еще разок попробую, автор спасибо за статью.
Когда-нибудь я потрачу хренову тучу времени, и все-таки заставлю себя разобраться с этим редактором этой операционной системой.
<имхо>
Поменять местами Ctrl и капслок — не лучшая идея. Лучше менять Ctrl и Alt, причём оба.
Хотя лично у меня на клавиатуре CapsLock ⇔ LCtrl, Enter ⇔ RCtrl. Для симметрии. Но так стоит делать только если бо́льшую часть времени проводить в консоли, там Enter не нужен.
</имхо>
//вимер.
Что на что менять сильно зависит от клавиатуры. Я пользуюсь клавой Apple — меняю Alt на Command и Caps Lock на Control. А вимерам так вообще Esc поближе надо ставить.
А у вимеров есть C-[ (стандартная фича реадлайна). С ремапленным Ctrl вполне удобно.
гм… а где у вас тогда Enter? С-M?
я вот на Enter замапил Esc в виме — имхо очень удобно и довольно естественно (;
(а ещё Ctrl на Caps)
C-J, как и должно быть в readline. И RCtrl за пределами консоли.
Хых, постоянно пользуюсь Emacs уже шестой год, и только благодаря вашей статье осознал, что у меня болят мизинцы :(
Простите за занудство, но по английски он зовется «имакс», а не «эмакс».
А как повесить на C-w одновременно убить слово и убить регион? Можно код пожалусто
Для 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 (когда регион подсвечивается), то ваш вопрос не имеет смысла, т.к. регион (метка-точка) присутствует практически всё время.
Зачем нужен sudo-edit, если из коробки есть tramp? При открытии файла пишем в путь /sudo::/path/to/some/file и открываем файл через sudo. Также с его помощью можно править файлы через ssh.

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

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