LINUX.ORG.RU

How to emacs

 , ,


1

5

Кто пользуется - скажите, с чего начать? Хочется попробовать освоить, но глаза разбегаются. Какой менеджер пакетов использовать и что накатить в первую очередь, какой из емаксов трогать - вот это вот всё.

Использовать буду для рутинного ведения всяких записочек в markdown (то есть редактор всегда запущен и готов для ввода), скриптописании и для C.

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

Вимеров просьба не беспокоить, не лежит у меня к их редактору душа.

★★★★★

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

покажи почтовик на уровне gnus/wanderlust

mutt

Ну и как там, снипеты и автодополнение уже завезли?

no-such-file ★★★★★
()
Ответ на: комментарий от Xenius

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

«Common User Access» эта парадигма называется. Она использовалась еще до Винды, в первую очередь в OS/2, и «позаимствована» — не очень уместное слово, Ай-би-эм ее довольно активно продвигала.

поэтому не понятен смысл переучиваться на дефолтные биндинги емакса/вима

Не понятен — не переучивайтесь. Характерные для текстового редактора CUA-style привязки, что не конфликтуют с емаксовой парадигмой, а именно: стрелочки, <Home> / <End>, <PgUp> / <PgDn> (и они же с контролом / альтом / шифтом во всех комбинациях), <S-Del>, <C-Ins>, <S-Ins>, мышь в ГНУ Емаксе, по-моему, работают из коробки. Еще ряд конфлитующих, а именно: C-z, C-x, C-c, C-v можно легко включить.

Zmicier ★★★★★
()
Привет!

Будучи многолетним вимером в мае 2015 попробовал emacs и влюбился в том числе за бесшовную работу с одним и тем же под linux, mac и windows. Ключевое стартовое отличие от vim было в том, что благодаря корректной работе с модификаторами Alt/Ctrl/Hyper/Super возможности работы с хоткеями сильно расширяются, и это очень ускоряет работу на ноутбуке и делает её более комфортной. Я в постоянно нарастающем восторге, пользуясь кросплатформенным вариантом с хранением конфига и каталога в Subversion. Рабочая копия Subversion размещена в yandex disk, что позволяет мне прозрачно перемещаится между множеством машин и платформ, сохраняя всю среду в непрерывном виде. Причём самый кайф для меня в том, что среда очень комфортна на ноутбуке всего с одним небольшим экраном. Даже один только org-mode достоин того, чтобы освоить emacs. Я много времени потратил на допил вима и его плагинов и не устаю кусать себе локти, что не взялся сразу за emacs в далёком 2002 году.

Пользовать надо обычный gnu emacs. В качестве введения пользуем вот этот русский плейлист http://www.youtube.com/playlist?list=PLECBtie1W1tGlrbDDBvcxnttRR4IA5qZn

мой комплект, работающий под linux и windows вот: https://yadi.sk/d/ll6I2cm-mdiZt

Комплект не оптимален и оформление вот этого человека https://bitbucket.org/avkoval/ мне нравится больше, я когда-нибудь в приступе наведения красоты переделаю своё в его формат.

Под windows папку emacs размещать в c:\emacs, каталог .emacs.d и файл .emacs размещать в домашнем каталоге пользователя. я пользуюсь симлинками (junction. far: alt-f6). Инструкции в начале файла .emacs

Для помощи в изучении вооружаемся этими ресурсами:
- проходим emacs tutorial
- Lisp на пальцах и быстро:
  - http://bzg.fr/learn-emacs-lisp-in-15-minutes.html
  - http://steve-yegge.blogspot.ru/2008/01/emergency-elisp.html
  - ищем короткую русскоязычную книгу-введение "Programming Emacs for Editting and Refactoring Code"
  - пользуемся вот этим http://lisper.ru/pcl/
- ищем книгу "Learning GNU Emacs 3rd Edition" и по ней пробегаемся по основным фичам, она короткая и по делу.
- вооружаемся официальной документацией, которая сэкономит много времени и покажет как много всего удобного и полезного прикрутили за многие десятилетия. https://www.gnu.org/software/emacs/#Manuals.
- периодически заглядываем за ништяками и чужим опытом сюда http://planet.emacsen.org/ и сюда: https://www.reddit.com/r/emacs/ 

Для сохранения корректной работы биндингов на русской раскладке пришлось перейти на переключение языка через внутренний механизм (по-умолчанию он на Alt-\), отключив переключение языка для emacs в punto switcher в винде и повесив системную раскладку не на привычный мне alt-space под linux. 

Ctrl обязательно перенести на caps, тогда многие хоткеи станут удобными. 
В винде я это делаю через autohotkey с таким скриптом:
;---------------------------------
;disable menu by left alt
~LAlt Up:: return

;#IfWinActive emacs  ; if in emacs
;+Capslock::Capslock ; make shift+Caps-Lock the Caps Lock toggle
Capslock::Control   ; make Caps Lock the control button
;#IfWinActive        ; end if in emacs
;---------------------------------

Плагины лучше ставить из официальных репозиториев в меню Options->Manage Emacs packages, тогда их легко обновлять через "U" "x"

Репозитории плагинов инициализируются вот таким кусочком в конфиге:
(when (>= emacs-major-version 24)
  (require 'package)
  (add-to-list
   'package-archives 
   '("melpa" . "http://melpa.org/packages/")
   t)
  (add-to-list
   'package-archives 
   '("SC" . "http://joseito.republika.pl/sunrise-commander/")
   t)
  (package-initialize))


Мои потребности в плагинах (всё из репозиториев): 
- helm: восхитительный поиск через сокращения, скажем "ru co" в его поиске найдёт строчку "russian-computer".
- org-mode: на мой взгляд непревзойдённый планировщик/заметочник/outliner. официальный мануал http://orgmode.org/org.html, восхитительный стартовый пример использования http://doc.norang.ca/org-mode.html
- evil-mode: полноценная эмуляция vim для быстрого полуавтоматического редактирования логов и скриптов. Пользуюсь по привычке и всё меньше по мере изучения штатных возможностей. Почему этот вариант лучше vim неплохо рассказал вот этот чувак: https://www.youtube.com/watch?v=JWD1Fpdd4Pc
- neotree plugin и sr-speedbar: Древовидный показ каталогов с файлами. Пользуюсь не часто, т.к. выясняется что штатный, казалось бы неказистый, Dired, чертовски функционален.
- ace jump: очень удобно быстро переходить по экрану парой клавиш. Пример настройки ниже.


удобства, которые я записал, чтобы не забыть:
- undo

http://www.gnu.org/software/emacs/manual/html_node/emacs/Undo.html
C-/
C-x u
C-_
Undo one entry in the current buffer’s undo records (undo).

To begin to undo, type C-/ (or its aliases, C-_ or C-x u)6. This undoes the most recent change in
the buffer, and moves point back to where it was before that change. Consecutive repetitions of C-/
(or its aliases) undo earlier and earlier changes in the current buffer. If all the recorded changes
have already been undone, the undo command signals an error.

Therefore, to re-apply changes you have undone, type C-f or any other command that harmlessly breaks the sequence of undoing; then type C-/ to undo the undo command.

- игра с размером шрифтов С-x С-+
To reset to the default, use C-x C-0

- как копировать и вставлять регистры
копирование: C-x r s <reg>
вставка: C-x r i <reg>

- macro
C-x C-k b назначить клавишу от 0-9 A-Z/ Вызвать C-x C-k Клавиша
C-x C-k Enter       Edit the last keyboard macro.
C-x C-k e отредактировать макрос. Emacs asks you if you want to edit the last keyboard macro (C-x e ), a named macro (M-x ), the last 100 keystrokes as a macro, termed "lossage" (C-h l ), or keys (meaning the keystrokes you bound a macro to).

C-x C-k n дать имя макросу
M-x insert-kbd-macro Enter macroname Enter вставить содержимое макроса
(global-set-key "\C-x\C-kT" 'transpose-names) добавить хоткей в .emacs
C-x C-k r    for apply-macro-to-region-lines

C-x q kbd-macro-query Insert a query in a macro definition.
C-u C-x q (none) Insert a recursive edit in a macro definition
C-M-c exit-recursive-edit Exit a recursive edit.

как выполнить макрос над регионом
C-x C-k r 
Run the last keyboard macro on each line that begins in the region (apply-macro-to-region-lines).


- как сохранять своё текущее положение в файлев регистре и как потом переходить по сохраннному:
(global-set-key (kbd "<C-f6>") 'point-to-register)
(global-set-key (kbd "<f6>") 'jump-to-register)



stalkerbss
()

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

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

Первые пару лет

Вы очень жестоки к топик-стартеру. Плюшка имакса - расширяемость. Она реализуется через конфиги и пакеты. Писать всё самому бессмысленная трата времени. В репозиториях есть куча удобных пакетов, которые ставятся в два нажатия из дефолтного имакса (разве что melpa подключить стоит). Зачем два года жить в 80-ых, когда можно освоить туториал и сразу поставить себе то, что нужно?

Weres ★★★
()
9 февраля 2016 г.
Ответ на: комментарий от loz

Я просто под «графическим редактором» понимал что-то типа GIMP.

theNamelessOne ★★★★★
()

когда добовляешь сторонние пакеты в .emacs.el нужно использовать «'» или ту, что в лиспах юзается. Которая на кнопке «ё»?

gssomi ★★
()
Ответ на: комментарий от Xenius

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

В том-то и дело, что может и зависит.

anonymous
()
Ответ на: комментарий от gssomi

когда добовляешь сторонние пакеты в .emacs.el нужно использовать «'» или ту, что в лиспах юзается.

«Которая на ё» в лиспах называется backquote (обратная кавычка), и её в основном используют в макросах. Никто, конечно, не запрещает использовать вместо апострофа («'»), просто незачем.

Ты бы лучше написала, как ты пакеты добавляешь.

theNamelessOne ★★★★★
()
Ответ на: комментарий от theNamelessOne

Я хотела тут helm установить, с гитов копировала helm и async. А потом в .emacs.el прописала

 ;; [Facultative] Only if you have installed async.
(add-to-list 'load-path "path/to/helm/directory")

(add-to-list 'load-path "/path/to/helm/directory")
(require 'helm-config)
а когда запустила емакс вышла ошибка «'» не верный оператор или как-то так. Потом поменяла на backquote все равно ошибка не ушла. Гуглила и нету насчет этого ничего, или не прально гуглила

gssomi ★★
()
Ответ на: комментарий от gssomi

а когда запустила емакс вышла ошибка «'» не верный оператор или как-то так.

Можешь полный текст ошибки запустить? Заодно с конфигом.

theNamelessOne ★★★★★
()
Ответ на: комментарий от gssomi

Вообще, лучше ставить пакеты с использованием package.el (встроенный пакетный менеджер). Ещё лучше при этом использовать Cask + pallet.

theNamelessOne ★★★★★
()
Ответ на: комментарий от gssomi

https://github.com/emacs-helm/helm#quick-install-from-git

make прошёл нормально? Пути правильные прописала вместо «path/to/helm/directory» (кстати, они там слеш забыли)? Через C-x C-e пробовала запускать этот код?

Norgat ★★★★★
()
Последнее исправление: Norgat (всего исправлений: 1)
Ответ на: комментарий от Norgat

Да пути правельно прописала.

Через C-x C-e пробовала запускать этот код?

О и такое можно. Нет не пробовала. Спасибо.

gssomi ★★
()
Ответ на: комментарий от theNamelessOne

Можешь полный текст ошибки запустить?

Завтра попробую сделать то, что посовали. Если не получится снова обращусь. А то я уже дома.

gssomi ★★
()

атом возьми. поддержка коммунити лучше некуда

sacred ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.