Size: a a a

Emacs — русскоговорящее сообщество

2020 September 07

PG

Pig Greenest in Emacs — русскоговорящее сообщество
yosk
Я разницы не чувствую, но учту.
Когда 1 в начале я понимаю смысл выражения прочитав первых 4 символа, и это считая пробел. Когда 1 в конце я пойму смысл выражения только когда дочитаю до 1.
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
То же самое с if -- почти всегда стоит вынести короткуя ветку вперед.
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
Тем более что в елиспе true ветка должна быть только одним выражением, а false может несколькими.
источник

VL

Valeriy L in Emacs — русскоговорящее сообщество
по итогу я поставил tsdh-light с выключенным font-lock в prog-mode
источник

a

akater in Emacs — русскоговорящее сообщество
yosk
Чем это плохо и как это можно исправить?
Лучше писать (null (cdr custom-enabled-themes)), не надо всю длину считать
источник

a

akater in Emacs — русскоговорящее сообщество
yosk
Я разницы не чувствую, но учту.
и про (= 1 ..) тоже верно, но это малопопулярно, увы.
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
akater
и про (= 1 ..) тоже верно, но это малопопулярно, увы.
Я всем рассказываю)
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
Эдакий Mein Kampf
источник

a

akater in Emacs — русскоговорящее сообщество
yosk
Не ебать мозг - скучно! Вот это я написал. Проверку на null наверное можно объединить со вторым пунктом. Кроме того, я не знаю что используется вместо else в elisp, поставил t. Вроде работает, но я очень мало программировал на elisp-е (конфиг на use-package не в счет), возможно код можно улучшить.
(defun disable-previous-themes ()
 "Disable themes enabled earlier to avoid faces conflict"
 ()
 (cond
  ((null custom-enabled-themes) nil)
  ((= (length custom-enabled-themes) 1) t)
  (t (progn
       (disable-theme (cadr custom-enabled-themes))
       (disable-previous-themes)))))
progn в телах cond не нужен, там implicit progn.
источник

a

akater in Emacs — русскоговорящее сообщество
yosk
Не ебать мозг - скучно! Вот это я написал. Проверку на null наверное можно объединить со вторым пунктом. Кроме того, я не знаю что используется вместо else в elisp, поставил t. Вроде работает, но я очень мало программировал на elisp-е (конфиг на use-package не в счет), возможно код можно улучшить.
(defun disable-previous-themes ()
 "Disable themes enabled earlier to avoid faces conflict"
 ()
 (cond
  ((null custom-enabled-themes) nil)
  ((= (length custom-enabled-themes) 1) t)
  (t (progn
       (disable-theme (cadr custom-enabled-themes))
       (disable-previous-themes)))))
Еще t можно не писать, итого
(defun disable-previous-themes ()
 "Disable themes enabled earlier to avoid faces conflict"
 (cond
  ((null custom-enabled-themes) nil)
  ((null (cdr custom-enabled-themes)))
  (t (disable-theme (cadr custom-enabled-themes))
     (disable-previous-themes))))
источник

a

akater in Emacs — русскоговорящее сообщество
Но на самом деле это тоже нехорошо, т.к. Elisp сейчас не умеет преобразовывать хвостовую рекурсию.  Я б написал
(awhen (cdr custom-enabled-themes) (mapc #'disable-theme it) t)
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
Pig Greenest
Пока я жив
(defun disable-themes-but-first ()
 ;; Шоб було
 (interactive)
 (mapc #'disable-theme (cdr-safe custom-enabled-themes)))
^
источник

y

yosk in Emacs — русскоговорящее сообщество
akater
Но на самом деле это тоже нехорошо, т.к. Elisp сейчас не умеет преобразовывать хвостовую рекурсию.  Я б написал
(awhen (cdr custom-enabled-themes) (mapc #'disable-theme it) t)
А что за awhen?
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
anaphoric when
источник

a

akater in Emacs — русскоговорящее сообщество
Да, я пропустил.  Но тут вернется t если что-то произошло, мне кажется, это ближе к тому, что человек хотел.
источник

Г

Глеб in Emacs — русскоговорящее сообщество
Народ, тут есть пользователи EXWM? Есть ли там какие-нибудь полезные лайфхаки, которые не каждый новичок в EXWM знает?
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
awhen это when-let, где переменная всегда it
источник

a

akater in Emacs — русскоговорящее сообщество
Угу, я так и не изучил эти if-let, when-let толком.
источник

Г

Глеб in Emacs — русскоговорящее сообщество
Глеб
Народ, тут есть пользователи EXWM? Есть ли там какие-нибудь полезные лайфхаки, которые не каждый новичок в EXWM знает?
Просто я поставил и ищу как улучшить
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
а чего там учить? работают как if, when, биндят как let
источник