LINUX.ORG.RU

Если вы пробовали вкатиться в GNU Emacs, расскажите, что пошло не так

 


3

5

Всем привет!

Часто вижу на форумах мнение, что Emacs это что-то старое, кривое и ненужное. Пожалуйста, напишите в комментариях, как вы пытались вкатиться в Emacs, и что пошло не так. Это поможет мне улучшить свою книгу про Emacs и даст идеи для постов в Telegram-канал.

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

Есть старый колхозный метод (можно автоматизировать, но по первости полезнее руками):

  1. Комментируешь половину init.el.
  2. Если ошибки нет, значит она в закоментированном сегменте. 2.а) Откомментируешь половину закомментированного и повторяешь загрузку.
  3. Если ошибка осталась, значит она в некомментированном сегменте. Тогда меняешь комментированное с некомментированным местами.

Рано или поздно, после нескольких итераций вы найдёте блок кода, который вызывает ошибку.

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

Советую не тыкаться вслепую ковыряясь в чужих конфигах, а настроить самому, по какому-нибудь видео туториалу на ютубе, там их полно. Заодно понимание придет. Пока что все проблемы это банальные опечатки + плюс конфиг написанный не для той версии.

Когда разберешься уже можно из чужих конфигов подергать себе удобные фичи.

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

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

Видео туториал нагляднее, имхо.

Нет. Они хуже во всём, кроме возможности показывать графические эффекты в динамике.

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

Там челы помимо построчного разбора конфига еще рассказывают и показывают какие кнопки нажимают и как работают, что весьма полезно.

Метод же с конфигом у человека пока не прокатил, уже неделю не работает.

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

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

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

Но ставить видео вперёд книги – этого мне не понять, видимо, уже никогда. Книгу можно читать в любом порядке, перечитывать любой нужный кусок, вычленять проблемные вопросы, легко цитировать без ссылок на ютуб, чтобы не мешать другим, не надо надевать наушники… Нет. То ли я тупой, то ли…

Метод же с конфигом у человека пока не прокатил, уже неделю не работает.

Есть подозрение, что видеоруководство в этом случае тем более не поможет. Но сильно не настаиваю. Тем более, тыкаться надо не «вслепую», как ты выше написал, а с пониманием, что это делает. Уж нагуглить семантику конструкции, прочтя её название в чужом конфиге, точно можно.

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

меня вообще огорчает эта тенденция — «посмотри вот это видиво», пока кто-то там на этом видео рассусоливает и наливает воды, можно в книге параграф прочитать и осмыслить, ну ёлки-палки, доколе

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

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

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

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

Вот еще что подумал, в любых учебных заведениях обучение ведется именно на пальцах, на примерах, на доске.

Именно в визуальном формате тебе разжевывают основы. Никто не говорит - прочитайте книгу такую-то главу - все поймете.

Книга это дополнение, хорошо систематизированное и дающее сжатую информацию. По книге читать ты не научишься. Так что аудио-визуальное обучение в самом начале - лучшее что может быть.

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

полностью согласен, как говорится — «покажи как и я сделаю».

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

это полезно, не спорю, когда ты имеешь понимание о предмете, а изучать какой-то инструмент, в данном случае емакс(боже, этот монстр давно должен был кануть в лету… серьезно? чтобы пользоваться имаксом нужен конфиг на почти тыщу строк, спасибо :D) вообще не продуктивно.

err
()
Последнее исправление: err (всего исправлений: 2)
Ответ на: комментарий от masa

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

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

нагуглить семантику конструкции, прочтя её название в чужом конфиге, точно можно

Даже гуглить не надо, в Емаксе всё документировано. Надо только освоить пару команд для просмотра этой документации.

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

У видеоуроков есть своё место в жизни, главным образом в области манипуляции объектами реального мира. Как выполнять физкультурное упражнение, вязать морские узлы, работать паяльником — в формате показа выходит гораздо нагляднее. Во всём остальном, текст и графика работате лучше. Видео — наилучший способ растянуть на 20 минут то, что я сам бы прочёл за три, оно не индексируется и не ищется, невозможно управлять темпом потребления информации в стиле «этот параграф просто проглядеть, а над этим абзацем внимательно подумать». И, хотя это и не относится к самому формату, но увы, всречается повсеместно: видеоуроки часто очень плохо структурированы.

Может быть уроки Рус.Яза и Лит-ры нас глубоко и травмировали в детсве, но как-то им удалось привить понимание, что у текста должна быть внутренняя логика, структура, завязка-развитие-кульминация и т.п. В видео же часто этим манкируют и вместо краткого логичного текста представляют нам бесформенную болтовню формата «сидят мужики у костра и байки травят». Если б автора прописал сценарий (и выкинул оттудова всё лишнее) прежде чем писать видео, было бы гораздо лучше. Однако, если б такой сценарий существовал, его бы можно было сразу опубликовать в виде статьи без дурацкого видео-посредника.

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

Проблема в customize-set-variable. В отличие от setq она не экранирует свой первый аргумент, поэтому если переменная custom-file содержит nil, то

(customize-set-variable custom-file
        (expand-file-name
         (convert-standard-filename "custom.el")
         user-emacs-directory))

сводится к

(customize-set-variable nil "/home/user/.emacs.d/cutom.e")

что очевидно лишено смысла.

Также customize-set-variable не поддерживает множественные присваивания.

См. diff с рабочей (по крайней мере у меня) версией.

@dunmaksim.

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

customize-set-variable это функция, т.е. она вычисляет значения своих аргументов и custom-file вычислится либо в строку, либо в nil, в любом случае попытка присвоить какое-то значение обречена на неудачу.

ELISP> (setq x nil)
nil

ELISP> x
nil

ELISP> (customize-set-variable 'x 4)
4
 (#o4, #x4, ?\C-d)
ELISP> x
4
 (#o4, #x4, ?\C-d)
ELISP> (customize-set-variable x 14)
*** Eval error ***  Wrong type argument: symbolp, 4

И это ещё хорошо, могли бы и испанскую инквизицию вызвать поинтересоваться, зачем мы захотели иметь число 4 со значением 14.

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

P.S. или так

(defmacro customize-set-variableq (var exp)
  `(customize-set-variable ',var ,exp))

ELISP> (customize-set-variableq x (+ 1 2))
3
 (#o3, #x3, ?\C-c)
ELISP> x
3
 (#o3, #x3, ?\C-c)
ugoday ★★★★★
()
Ответ на: комментарий от dyonya

Есть guile-emacs, его время от времени реанимируют. Работает хуже обычного.

ugoday ★★★★★
()

Ещё такой вопрос возник: почему интерфейс Vim’а переведён на различные языки, а интерфейс Emacs’а нет?

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

Что такое интерфейс Emacs? Не настаиваю на истинности/единственности своего подхода, но я всегда делаю

(menu-bar-mode -1)
(toggle-scroll-bar -1)
(tool-bar-mode -1)

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

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

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

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

Повторюсь, я не настаиваю на едниственноистинности своего учения подхода, но с моей точки зрения, ненужно, переведённое на разные языке, становится ненужным на разных языках.

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

Потому что vim это монолитный текстовый редактор, а емакс это интерпретатор elisp c набором скриптов от разных пользователей.

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

почему интерфейс Vim’а переведён на различные языки, а интерфейс Emacs’а нет?

Потому что ты его не перевёл.

Ну а для Vim’а кто-то потратил силы на внедрение поддержки различных языков и кто-то (скорее всего другие люди) осуществили непосредственно перевод на интересующие их языки. Для Emacs’а этого никто не сделал. Вот почему. Всё как обычно.

Я тут согласен с @ugoday, впрочем — перевод интерфейса нафиг не нужен ни там ни там.

CrX ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)