LINUX.ORG.RU
ФорумTalks

Делимся советами по использованию Emacs

 


4

4

Всем привет,

Уже несколько лет я хочу полностью перейти на Emacs. Можете годных советов сюда накидать? Потому что пока что волей-неволей большинство вещей делаю в Sublime.

Какие плагины ставить? Секретные приемы? Что как вообще?

Объясните мне например, почему при нажатии на табулятор emacs ведет себя совершенно по разному?

Перемещено beastie из development


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

Спасибо. Собственно да, я для этого и хочу научиться на нем толково работать.

Еще есть такой вопрос, я вот например LISP не знаю, но нормально разбираюсь в Пайтоне. Возможно ли в емаксе «скриптовать» используя этот язык?

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

У меня мотивация другая. Все фичи которых вроде как «не хватает», можно с таким же успехом сделать в том же Sublime, но так как по факту изучать там придется столько же сколько в емаксе, то лучше уж с самого начала выбирать «правильный» инструмент.

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

Ну вот и будешь через пару лет сидеть в какой-нибудь конторке с саблаймом и пилить плагины на гнидобейсике с мотивацией «можнозделоть», потому что емакс там не признают, ха.

А так - там в емаксе хороший туториал есть по всем основным пунктам - остальное - в рамках конкретного языка/платформы.

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

Я уже очень много лет сам говорю конторам на чем будут пилить код их кодеры. Разумеется emacs не входит в этот инструментарий.

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

почему ты считаешь, что emacs - «правильный»? То что он меметичен не делает его модным. Потрать неделю на гугление «как сделать %фича которая тебе нужна% emacs» и настрой под себя. Никаких «секретных приемов» которые бы не были описаны в каждом пером emacs how to tutorial нет. magit/org-mode/helm. За тебя твой редактор никто настраивать не будет.

Но вообще поддержу других ораторов - пока что тебе емакс не нужен, иначе ты бы уже его освоил.

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

Еще есть такой вопрос, я вот например LISP не знаю, но нормально разбираюсь в Пайтоне. Возможно ли в емаксе «скриптовать» используя этот язык?

Основной (для редактирования) режим скриптования там не относиться к какому либо языку вообще. Просто «максимально обще программируется последовательность действий». Это клавиатурный макрос в котором куча весьма мощных «кубиков» по M-x доступно. Ну а основное «логика передвижения по тексту так что бы можно было это сработало в 99.99% представленных в именно этом тексте случаях».

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

Вы там скрипты чтоль на похапе пишете, что так легко между средами скачете или разработка исключительно с чистого листа всегда?

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

Не понял к чему это, но в основном Java Enterprise с набором быдлокодеров в подарок.

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

Вы там скрипты чтоль на похапе пишете, что так легко между средами скачете или разработка исключительно с чистого листа всегда?

Все понял. Не. Моя задача это формирование команды из тех ресурсов что есть плюс проектирование всей инфраструктуры, включая ту что будут использовать кодеры в повседневной работе.

Как я уже и говорил, речь о Java Enterprise, то есть бизнес заключается в том чтобы нанять разработчика как можно дешевле (желательно вообще студента бесплатно на практике), а продать по рыночной цене.

Зоопарк там дай боже, в резюме он пишет что эксперт по Maven, допустим, а на деле все что он знает это как из консоли запустить mvn clean install. Поэтому все окружения разработки жестко лочатся и т.н. «программист» превращается в оператора вирт. машины со знанием базовых приемов Java.

Так и живем...

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

Поэтому все окружения разработки жестко лочатся

Ну это правильно с одной стороны, раз уж жавамакак набираете, с другой стороны не всё ли равно, откуда pom.xml набит? Я вон его из саблайма (хаха, да) правлю.

Я с жавой в емаксе не работал, но глядя на многолетние жалкие потуги IntelliJ хоть что-то приличное из своей ИДЕ сделать предположу, что в емаксе с этим все значительно хуже. Так что это будет оператор нацюцюрника, а не оператор вирт. машины.

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

раз уж жавамакак набираете

Я не набираю, мне их из отдела кадров приносят. Меня иногда под вечер колотить начинает от их всезнайства, рукожопости, невозможности сделать хоть что-то выходящее за рамки базовой поставки Eclipse.

не всё ли равно, откуда pom.xml набит

Ну я иногда смотрю на всю эту магию с автоиндентом, автозакрытием элементов и т.д. и понимаю что тоже так хочу. Это не критично, но круто.

предположу, что в емаксе с этим все значительно хуже

Ни в коем случае не собираюсь заменять IntelliJ на емакс. Но вот заводить в ней отдельный проект для пайтон скрипта тоже не хочется.

Мне как раз и нужен эдакий швейцарский нож для текстовых файлов, кода или markdown не важно.

alex07
() автор топика

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

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

освежить лисп

Там освежать особо нечего. Я им в жизни своей не пользовался, но от такого кол-ва скобок в глазах рябит.

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

Если рябит, то лучше не начинать пользоваться.

olibjerd ★★★★★
()

почему при нажатии на табулятор emacs ведет себя совершенно по разному?

Для меня один из смыслов использования emacs как раз в этих табах. В зависимости от языка делает нужный отступ

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

ох ты ж ебт, так это поделие на жаваскрипте!!!

Не, спасибо, я как то привык что мой инструментарий пишут люди умнее меня.

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

оно, тем не менее, работает. а вам не пристало, изучать доку по elisp, в то время как нужно работать?

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

Ну да, разумеется. Тем не менее спасибо, но я воздержусь.

К слову сказать Sublime тоже работает ОК, но я уверен что для тех фич которые мне надо изучать таки придется Javascript в случае с Atom. Поэтому предпочту сразу emacs.

alex07
() автор топика

Долгое время сидел на Саблайме. Сразу пересесть на Емакс и поехать мне тоже не удалось. Переход затянулся на многие месяцы. Ниже — мои действия.

  1. Освоил десятипальцевый набор. По-моему, без слепой печати набирать емаксовские комбинации мучительно больно.
  2. Прошёл встроенный туториал, «C-h t» который.
  3. Посмотрел парочку скринкастов:
  4. Прочитал книжку: https://www.masteringemacs.org
  5. Параллельно стал играться с Лиспом.
  6. Взялся кастомизировать, подглядывая за другими:

Главный совет: не злоупотреблять плагинами. Лучший конфиг Емакса — это конфиг, в котором ты знаешь каждую строчку. Я за решение проблем по мере поступления. Например, не хватает мне боковой менюшки, как в Саблайме, ставлю первый плагин. Не хватает множественных курсоров? Ставлю второй плагин. Ну, и так далее.

Успехов!

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

Вот очень хороший совет. Спасибо!!!

Собственно ради таких ответов тема и создавалась.

alex07
() автор топика

А есть кто на ++ пишет в емаксе? Я много лет не мог слезть с vim из-за бесподобного YouCompleteMe. Есть что-то похожее в емаксе? Потому что, извините, ctags и ко - это прошлый век.

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

YouCompleteMe

А чё он делает? И как работает? Если через clang комплитит, то это есть. А так-то насколько я понимаю YCM клиент-серверный и для емакса есть клиент.

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

Автокомплит и проверка на лету (подсвечивает ошибки прямо во время редактирования). Работает как фронтэнд в шлангу. На вход подается редактируемый исходник (автоматически) и файл настроек (цепляется при старте, я обычно пишу руками, есть генераторы), в котором указаны флаги компиляции. Я видел этот проект и для емакса когда-то, когда искал, но тогда он едва работал ( вотличии от vim), вот и спрашиваю, вдруг кто пользуется.

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

emacs-ycmd я не пробовал, но всё вышеперечисленное работает через связку cmake-ide + irony + rtags + flycheck (всё тоже через clang). Руками конфиги создавать не надо, об этом заботится cmake-ide (с билдсистемами отличными от cmake оно работать тоже умеет).

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

company-clang у меня работает, правда, довольно забавно, если подсказки перестали работать - значит ошибка, надо переходить в буффер ошибок и смотреть что не так, выше описанную связку я нормально настроить не смог - она у меня тупила и ссоорилась с company

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

Будьте любезны, покажите кусок настроек отвечающих за связку cmake-ide + irony + rtags + flycheck  — мне не удалось это нормально настроить, хотелось бы посмотреть верный вариант

Silerus ★★★★
()

Уже несколько лет я хочу полностью перейти на Emacs.

Смеялся, спасибо.

Можете годных советов сюда накидать?

Да, оставайся на Sublime, раз большинство вещей ты в нем делаешь, значит он тебе подходит, не трать время на говно мамонта из прошлого века, для которого нужно 30 пальцев на руках и запоминание длинных команд на каждый чих.

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

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

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

Подскажите пожалуйста, как вы справились с cmake-ide не как не могу указать ему где папка сборки? Он в tmp/ шпарит, а на .dir-locals.el не реагирует.

Silerus ★★★★
()
Ответ на: комментарий от feofan
((nil . ((cmake-ide-build-dir . "/home/snk/projects/test_project/build"))))

Причем rtags - видит этот файл, когда cmake-ide-setup закоментирован и спрашивает, что с ним делать.

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

да. Я когдато пробывал, не очень удачный опыт был, тогда получалось, но там еще меркуриал прикручивал, почемуто без него не работало

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

игнорит он эту переменную, тоже делал, не знаю почему вот такую функцию для этого делал

(defun set_cmake_dir(dir)
  (interactive "Dset dir:")
  (setq cmake-ide-build-dir (concat dir "/build")))

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

Если у тебя проект с cmake, cmake-ide должен все сам настроить, никакие переменные задавать не нужно. Заводи баг.

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