/emg/ - Emacs & Lisp General

Kodomo edition.

>General Emacs resources
gnu.org/software/emacs/manual/emacs.html (GNU Emacs Manual)
emacswiki.org (Emacs Wiki)
github.com/emacs-tw/awesome-emacs (Big list of packages)
github.com/thinkhuman/writingwithemacs (Tips for prose writing in Emacs)

>Tutorials
C-h t (Interactive Tutorial)
gnu.org/software/emacs/tour (GNU Emacs Tour)
youtube.com/playlist?list=PLX2044Ew-UVVv31a0-Qn3dA6Sd_-NyA1n (General Introduction)
youtube.com/playlist?list=PLVtKhBrRV_ZkPnBtt_TD1Cs9PJlU0IIdE (Org Mode)
youtube.com/playlist?list=PL8Bwba5vnQK14z96Gil86pLMDO2GnOhQ6 (Advanced Configuration)

>(Self) Documentation
C-h k (Keybinds)
C-h o (Functions and Variables)
C-h i (Assorted Manuals)

>Premade Configs
=Make your own=
github.com/hlissner/doom-emacs/tree/develop (Doom Emacs)
github.com/syl20bnr/spacemacs (Spacemacs (heavy))
github.com/snackon/Witchmacs (Witchmacs)

>Reduce Startup Time
use-package defer
pastebin.com/mrPsnUas (Disable GC during startup)
emacswiki.org/emacs/EmacsAsDaemon (Emacs as Daemon)
akrl.sdf.org/gccemacs.html (Native Compilation, stable, merged into Emacs 28)
emacswiki.org/emacs/SetupEl

>Changing Default Keybinds
pastebin.com/2hg4g3C6

>Programming resources for Emacs Lisp, Common Lisp, Scheme and Clojure:
pastebin.com/nyTQp7qi

>Troubleshooting
If there seems to be a bug (or complicated issue), anons may ask you to compose an MWE (minimum working example).
To create an MWE, try the following:
1) start emacs with "emacs -q". This disables your init.
2) try to reproduce your issue with as few settings changed and packages (manually) loaded as possible.
These steps ensure that other anons can replicate your problem if it's something more involved. Sometimes you even find the cause yourself this way, too!

#
(setq prev-bread )

Attached: Kodomo no SICP.jpg (434x479, 43.79K)

Other urls found in this thread:

greghendershott.com/fear-of-macros/
github.com/blender/blender,
twitter.com/AnonBabble

finally

M-x gas-mode

C-x b r a p

GNU Guile.

Attached: 1602793802309.jpg (1280x1195, 329.07K)

C-u M-!

what do you think about greghendershott.com/fear-of-macros/

built for breeding
sex sex sex sex sex

Hello, I've posted it in the last thread. An user answered me but I didn't have the chance to answer. I'm not starting a war or want to talk about open vs closed sourced software.

I want to use Emacs and I've been watching some videos of RMS talking about free software. While I agree with a lot things he's talking about, I'm feeling conflicted about using Emacs for writing proprietary software. RMS wrote most of GNU Emacs, and since he considers closed source software unethical, wouldn't it extend for the use of Emacs? Or something has nothing to do with other? It feels like that RMS views on software are not the ones that GNU and FSF follows, is that right?

I'll take the emacs pill only if there is syntax highlighting, good rust anf typescript support.

I have good news for you

I think FSF's official stance is 'make your workflow as free as possible'. ideally all software would be free, but using free tools to create proprietary software is still better than using proprietary tools. it's free after all

I dunno about what RMS thinks but hear me out. Emacs is under GNU GPL 3,0 or later. I admit I haven't read this license, but BLENDER THE 3D EDITOR of all things is under the same license as said here github.com/blender/blender, and it's used freely for proprietary projects with no backfire afaik a fucking lot. So in your place I wouldn't care about making proprietary software with Emacs.

Scheme!

>I have good news for you
So which one do i install that has sane defaults and um pardon me "evil mode" with vim keybindings.
Ive also heard conflicting reports on it being fast. It definitely is faster than vscode but how much faster is it.

> So which one do i install
GNU Emacs
> "evil mode"
Yeah just install it from ELPA
> fast
Emacs is single threaded and everything that blocks the UI kills it. Especially when it happens on key presses. Autocomplete is often an offender. On Linux it's OK for me, on Windows, unusable depending on the backend.

however im runnin guile and wrote a wrong macro. it's returning # instead of a multiplied result of an altered expression
(define-syntax switch-add-to-multiply
(lambda (syntax-forms)
(when (eq? (car (syntax->datum syntax-forms)) '+)
#'(append! '(*)
(cdr (syntax->datum syntax-forms))))))
(switch-add-to-multiply (+ 1 2 3 4))

what im doin wrong... i dont wanna match, match is convoluted af

the syntax mentioned on the article linked by first user is very specific to racket. normal scheme syntax-rules doesn't work like that

here it is in standard syntax-rules:
(define-syntax switch-add-to-multiply
(syntax-rules (+)
((_ (+ e0 ...)) (* e0 ...))
((_ (e0 ...)) (e0 ...))))

> (switch-add-to-multiply (+ 1 2 3 4))
24
> (switch-add-to-multiply (- 4 2))
2
> (switch-add-to-multiply ((lambda () "no switching here")))
"no switching here"

seriously? well, fuck that, i'll stick with define-macro.

it's a choice between power and safety really. you never have to worry about escaping anything when using syntax-rules, but it doesn't allow any compile-time evaluation, just text replacement like a C macro. define-macro is more powerful but also more dangerous

i get it user... the manual mentions hygiene a lot. my stuff doesn't need it - it's just messing with the order of elements in a passed form. but thanks. really.

here's the ugly single-argument lisp version, done quickly and easily for comparison
(define-macro (switch-add-to-multiply forms)
(if (and (list? forms)
(eq? (car forms) '+))
(append '() '(*) (cdr forms))
forms))
(switch-add-to-multiply (+ 2 4 6)) ;; 48
(switch-add-to-multiply (- 33 3)) ;; 30
(switch-add-to-multiply "no switching") ;; "no switching"

my friend keeps trying to kill me on something called "4koder" or some shit like that, i briefly checked it out and it looks like abandonware exclusively shilled by some eceleb, has anyone ever heard of this?