LINUX.ORG.RU
ФорумTalks

Любимые/удобные/постоянно используемые пакеты/расширения в emacs

 ,


6

5

Я не программист, хотя программы на C++/python/perl писать приходится. Везде использую умолчание, разве что для perl запускаю иногда cperl-моду. Хотелось бы понять чего в emacs я упускаю.

Постоянно использую auctex+reftex, org-mode (в основном для структурированных заметок без наворотов, иногда таблицы для черновика), flyspell (предпочитаю через ispell, если возможно перетащить Лебедевский словарик с ё, исключительно по привычке) и eshell для простейших консольных команд. Эпизодами запускаю calc.

Раскладку настраиваю через quail (в паре мест отличается от стандартной). В .emacs есть функция перевода с латиницы в кириллицу и обратно в случае, если забыл переключить раскладку. Использую внутреннюю переключалку emacs скорее по привычке, но к сожалению похоже пока ещё нет рецепта под все возможные варианты сред с которыми мне приходится сталкиваться. Было бы интересно изучить состояние дел на сегодня в этой области. Сейчас у меня везде unicode, кроме некоторых старых текстов, где кодировка указана явно через переменную codepage.

Поддержку контроля версий использую встроенную. Для контроля версий использую сейчас исключительно git и вынужденно кое-где CVS/SVN. Имеет ли смысл перейти на что-нибудь более git-ориентированное или умолчание сойдёт? Для сравнения файлов использую ediff.

Запускаю при старте emacs emacs-server (server-start) и emacs больше не закрываю — он постоянно весит. По возможности всё остальное открываю через emacsclient. Активно использую разделение на окна и фреймы. Между окнами переключаюсь по ^x+стрелка.

Для удалённого редактирования по ssh заценил tramp, но пока его особо часто не использую — предпочитаю консольную версию emacs через ssh. Как вариант иногда запускаю GUI-версию через x2goclient, если возможно.

Потыкал палочкой elpa, но как-то там всего слишком много и не понятно что добавлять.

Да, вопрос: А что ты используешь, читатель, в emacs и зачем?

★★★★★

Последнее исправление: Evgueni (всего исправлений: 2)

Поддержку контроля версий использую встроенную. Для контроля версий использую сейчас исключительно git и вынужденно кое-где CVS/SVN. Имеет ли смысл перейти на что-нибудь более git-ориентированное или умолчание сойдёт? Для сравнения файлов использую ediff.

magit FTW!

Oxdeadbeef ★★★
()

без чего жить, имхо, нельзя: ido, ibuffer, smex, tramp

Потыкал палочкой elpa, но как-то там всего слишком много и не понятно что добавлять.

у меня так

(setq package-archives '(("elpa" . "http://tromey.com/elpa/")
                           ("gnu" . "http://elpa.gnu.org/packages/")
                           ("melpa" . "http://melpa.milkbox.net/packages/")
                           ("marmalade" . "http://marmalade-repo.org/packages/")))

дико рекомендую, кстати

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

IMHO чересчур лаконично :) Хотелось бы что и для чего используется и почему умолчание не устраивает.

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

Используется helm, projectile, sr-sreedbar, js2-mode со всеми прибамбасами (ac, tern), php-mode с прибамбасами (ac, extras), elpy, всякие плюшки symbol-highlight (разноцветные переменные), numbers-highlight, linum-mode, rainbow-mode (показывает веб цвета #aaccff этим цветом), rainbow-delimiters (цветные скобки), magit (для git), chord-mode (навешивает команды на сочетания сочетания символов, например ;; -> \C-j\t, xx - \M-x), golden-ratio (при переключении в окно изменяет его размер по золотому сечению), и т.д.

Вообще на github полно всяких пакетов для прокачки емакса, например https://github.com/xiaohanyu/oh-my-emacs https://github.com/jhamrick/emacs и т.п.

no-such-file ★★★★★
()

ну-ка расскажите-ка чем вам всем так нравится этот хелм?
По-моему какое-то г неюзабельное как и все скрипты которые создают какие-то там буфера/окна. Переключаться какимми-то комбами клавиш между вариантами.
Ну это чисто первое впечатление)

Чем оно лучше обычного ido и всяких примочек вокруг него(типа ido-vertical, smex, flx-ido)?

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

без чего жить, имхо, нельзя: ido, ibuffer, smex, tramp

ido & smex с успехом заменяет helm

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

А чем оно лучше стандартного VC?

Стандартное решение слишком «стандартное» :)  — пытается унифицировать разные VCS, а значит не использует специфичные фичи. Magit — это мощный GUI для гита со множеством плюшек и красивостей. Я экслюзивно только гитом пользуюсь для всего.

Oxdeadbeef ★★★
()

Постоянно использую helm, company и multiple cursors. Это кроме специализированных пакетов для ЯП.

feofan ★★★★★
()

Уже 16 сообщений, а ещё никто не признался, что на самом деле vim использует.. =)

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

если тыкнуть в конкретный пакет - описание поболе будет :)

вообще, можно посмотреть на список пакетов из всяких стартеркитов типа Prelude

lazyklimm ★★★★★
()

Самого интересует тот же вопрос. Внесу, пожалуй, свои 5 копеек.

  • use-package (для организации конфига) — позволяет «изолировать» настройки одного пакета от другого:
    (use-package key-chord
      :ensure t
      :config (progn
    	    (setq key-chord-two-keys-delay 0.3)
    	    (key-chord-define evil-insert-state-map "jk" 'evil-normal-state)
    	    (key-chord-define evil-visual-state-map "jk" 'evil-normal-state)
    	    (key-chord-define company-active-map "jk" 'company-abort)
    	    (key-chord-mode 1)
    	    )
      )
  • key-chord — позволяет делать любые сочетания клавиш хоткеями, в кусе кода выше «jk» переводит Evil в нормальный режим.
  • company для автокомплита и company-quickhelp для отображения краткой(?) документации в pos-tip'ах
  • save-place чтобы emacs запоминал позицию курсора после закрытия файла.
  • linum-relative для нумерации строк
  • Вышеупомянутый ace-jump
  • flycheck и flycheck-pos-tip для проверки синтаксиса и отображения ошибок в pos-tip'ах, соответственно
  • autopair, powerline, diminish и multiple-cursors до кучи
vanzef
()

Я конформист, покуда дефолт сносно работает не рыпаюсь. Так что слабо подвержен shiny new stuffshit syndrome (во всяком случае, мне так кажется).
Однако за продолжительное время фантиков набралось немало: org-mode с интеграцией в calendar, ido, flyspell-prog-mode, web-mode, magit, global-auto-revert, winner, desktop (пишу в сессию все переменные подряд, дабы получать идентичное состояние после рестарта/креша сервера), auto-complete, semantic, rope.

Из перечисленного всё очень надо и используется, что не используется, то со временем выкидывается.

С auto-complete как-то не особо сложилось. Когда-то давно он с rope не хотел работать вообще, а semantic крэшил емакс через каждый чих. В результате я так привык держать всё в голове, что практически не нуждаюсь в автодополнении.
В конце концов полгода назад прикрутил и rope и semantic, но дополнение включается только по хоткею, как было с rope.
В будущем рассчитываю полностью выкинуть rope в пользу semantic, пока работают параллельно.

Сейчас на испытательном сроке avy-jump. Сама идея командной навигации отличная, но в моём случае ей не даёт развернуться winner, который у меня работает через Shift-стрелки. Хоть avy и клёвый, но тыкая рядом стоящие Shift/Ctrl+стрелки очень быстро попадаю куда надо, без включения мозга.
Может со временем втянусь.

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

Ещё свято блюду тему производительности, весь зоопарк имеет молниеносную реакцию на игрушке sony vaio-p. По этой причине выбросил linum-mode, теперь слегка в печали.

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

А чем оно лучше стандартного VC?

Кратко? Он божественен для подготовки коммитов/патчей.

vc никто не запрещает использовать параллельно.
Сейчас приходится работать с Mercurial, меня без magit плющит.

aidaho ★★★★★
()

Helm глобально. Для автодополнения - company + irony/anaconda (для C и Python соответственно) + yasnippet, для автоматического определения величины отступа - dtrt-indent, для навигации по коду - ggtags. Периодически включаю fill-column-indicator для проверки не вылезли ли строки за рекомендуемую длинну - но этот модуль, собака, ломает автодополнение, уже который год починить не могут.

Кстати, раз тут матерые емаксеры собрались - может есть какой фокус заставить емакс показывать значения enum в C/C++ ?

Vovka-Korovka ★★★★★
()
Ответ на: комментарий от aidaho

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

А разве стандартных закладок ^x r m и ^x r b TAB не хватает?

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

А разве стандартных закладок ^x r m и ^x r b TAB не хватает?

Может и хватает. Пока только вяло хочу, а время потратить и разобраться, что мне лучше подходит, ещё не выделил.

Крутится так же мысль минималистичного решения в виде стека:
- кнопка запихивающая в стек или удаляющая из него закладку, куда смотрит курсор
- кнопки вперёд и назад

Всё. В общем, ещё не до конца сформулировал, как с этим хочется работать.

aidaho ★★★★★
()

color-theme с deep-blue темой, whitespace-mode чтобы лишние пробелы и табы удалять, YAML-mode по работе

По учебе использовала модуль для maxima:на пол экрана редактирование кода, на другую половину интерактивная консоль — очень удобно.

alpha ★★★★★
()

org-mode (в основном для структурированных заметок без наворотов, иногда таблицы для черновика)

org-protocol — позволяет легко сохранять веб-ссылки, выделенный текст с веб-страницы.
Также ido+smex для поиска файлов, ф-ций, переменных. Хорошо выглядит ido-vertical-mode.
Регулярно использую интерфейс для консольного SDCV.
Для динамических языков есть моды, позволяющие выполнять код прямо во время редактирования, наподобие Emacs Speaks Statistics (для R).
Мега-удобная штука — undo-tree — запоминает изменения в файле.
Ну, и по мелочи: dired+, fullscreen, google-this, hungry-delete, electric-pair-mode.
Управляется это все через el-get — слишком удобно, чтобы менять на ELPA — ведь можно установить любой пакет, не оформленный по правилам ELPA, а таких большинство.

iVS ★★★★★
()
Последнее исправление: iVS (всего исправлений: 2)

из неупомянутых тут юзаю hydra, очень крутая штука. Ремапнул capslock на Alt (не Meta) и вешаю на A-* разные головы hydra.

Например, A-j - jabber.

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

hydra хороша:

(use-package hydra
  :bind ("C-c n" . hydra-cycle-next/body)
  :bind ("C-x o" . hydra-cycle-windows/body)
  :config
  (defhydra hydra-cycle-windows
    (:body-pre (other-window 1))
    "Windows"
    ("o" (other-window 1) "Next")
    ("O" (other-window -1) "Previous")
    ("t" haba-toggle-window-split "Toggle split")
    ("]" enlarge-window-horizontally "Enlarge horizontal")
    ("[" shrink-window-horizontally "Shrink horizontal")
    ("=" enlarge-window "Enlarge vertival")
    ("-" shrink-window "Shrink vertical")
    ("b" balance-windows "Balance windows")
    ("m" delete-other-windows "Maximize window")
    ("c" delete-window "Close window")
    ("q" nil "quit"))
  
  (defhydra hydra-cycle-next ()
    "Frames, Buffers"
    ("f" other-frame "Next frame")
    ("F" (other-frame -1) "Previous frame")
    ("b" haba-next-buffer "Next buffer")
    ("B" haba-previous-buffer "Previous buffer")
    ("k" kill-this-buffer "Kill buffer")
    ("q" nil "quit")))

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

Спасибо, годно. Сделал себе гидру для multiple cursors.

feofan ★★★★★
()

projectile - не скажу, что юзаю на всю катушку. Удобная навигация «сначала прикрутил себе neotree по привычке из других IDE но теперь юзаю zsh-стайл навигацию от projectile. Ну и ag-search в ней часто использую

js зависимые штуки, т.к. пишу на js. Но сказать по правде авторасставление отступов для новой строки я так и не освоил, оно какое-то дурное, потому пишу все без отступов, потом выделяю блок и делаю C-u TAB. Вот это хотелось бы победить.

magit - лучший клиент гита эвар. Очень правильный UX у нее, что-то вроде консоли на стероидах. Каждый раз в восторге.

Иногда использую git-blame

Постоянно (раз в пару месяцев) меняю темы оформления, фактор новизны мотивирует работать.

helm стоит, но я не разбирался с ним даже, как-то не возникало потребности. Может мне тут объяснят какие штуки можно запилить с его помощью.

run-octave использую еще, активно юзаю term и shell. Каждое для своего.

Есть еще и хотелки. Было бы круто запустить внутри емакса что-то на webkit. Например тот же surf.

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