[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology

Name
Options
Comment
Verification
4chan Pass users can bypass this verification. [Learn More] [Login]
File
  • Please read the Rules and FAQ before posting.
  • You may highlight syntax and preserve whitespace by using [code] tags.

08/21/20New boards added: /vrpg/, /vmg/, /vst/ and /vm/
05/04/17New trial board added: /bant/ - International/Random
10/04/16New board for 4chan Pass users: /vip/ - Very Important Posts
[Hide] [Show All]


Janitor application acceptance emails are being sent out. Please remember to check your spam box!


[Advertise on 4chan]


>Lisp is a family of programming languages with a long history and a distinctive parenthesized prefix notation. There are many dialects of Lisp, including Common Lisp, Scheme, Clojure and Elisp.

>Emacs is an extensible, customizable, self-documenting free/libre text editor and computing environment, with a Lisp interpreter at its core.

>Emacs Resources
https://gnu.org/s/emacs
https://github.com/emacs-tw/awesome-emacs
https://github.com/systemcrafters/crafted-emacs

>Learning Emacs
C-h t (Interactive Tutorial)
https://emacs-config-generator.fly.dev
https://systemcrafters.net/emacs-from-scratch
http://xahlee.info/emacs
https://emacs.tv

>Emacs Distros
https://spacemacs.org
https://doomemacs.org

>Elisp
Docs: C-h f [function] C-h v [variable] C-h k [keybinding] C-h m [mode] M-x ielm [REPL]
https://gnu.org/s/emacs/manual/eintr.html
https://gnu.org/s/emacs/manual/elisp.html
https://github.com/emacs-tw/awesome-elisp

>Common Lisp
https://lispcookbook.github.io/cl-cookbook
https://cs.cmu.edu/~dst/LispBook
https://gigamonkeys.com/book
https://lem-project.github.io
https://stumpwm.github.io
https://nyxt-browser.com
https://awesome-cl.com

>Scheme
https://scheme.org
https://try.scheme.org
https://get.scheme.org
https://books.scheme.org
https://standards.scheme.org
https://go.scheme.org/awesome
https://research.scheme.org/lambda-papers

>Clojure
https://clojure.org
https://tryclojure.org
https://clojure-doc.org
https://calva.io
https://clojure.land
https://www.clojure-toolbox.com
https://mooc.fi/courses/2014/clojure
https://clojure.org/community/resources

>Other
https://github.com/dundalek/awesome-lisp-languages

>Guix
https://guix.gnu.org
https://nonguix.org
https://systemcrafters.net/craft-your-system-with-guix
https://futurile.net/resources/guix
https://github.com/franzos/awesome-guix

>SICP/HtDP
https://web.mit.edu/6.001/6.037/sicp.pdf
https://htdp.org

>More Lisp Resources
https://lisp.nexus
https://rentry.org/lispresources

previous: >>107314730
>>
File: emacsconf-logo1-256.png (11 KB, 256x256)
11 KB
11 KB PNG
Days until EmacsConf 2025
https://emacsconf.org/2025/

(calc-eval "<2025-12-06> - now()")
>>
> finally a baker shows up
FAANTASTIC
AND
BEAUUTIFULL
>>
File: transpose.webm (318 KB, 900x416)
318 KB
318 KB WEBM
I tried to make it easier to transpose sexps in both directions. However, to do so, I initially had to use some functions from evil. If anyone could advise me on making this work without the functions:
- evil-a-paren
- evil-jump-item
...I would appreciate it.
(defun transpose-sexps-backward (arg &optional interactive)
"Transpose a sexp backward and position cursor to do it again."
(interactive "*p\nd") ; What does this mean?
; copied form transpose-sexps
(pcase-let* ((`(,begin ,end ,type) (evil-a-paren)))
(goto-char begin)
;;(message "arg %s interactive %s" arg interactive)
(transpose-sexps arg interactive)
(goto-char (- (point) 1))
(evil-jump-item) ; %
(backward-sexp) ; put cursor on opening paren
))

(defun transpose-sexps-forward (arg &optional interactive)
"Transpose a sexp forward and position the cursor to do it again."
(interactive "*p\nd")
(unless (eq 41 (char-before)) ; 41 = closing paren
(pcase-let* ((`(,begin ,end ,type) (evil-a-paren)))
(goto-char (+ end 1))))
(condition-case nil
(transpose-sexps arg interactive)
(user-error (message "can't go further.")))
(backward-char) ; put cursor on closing paren
)


Recommended Keybindings:
  (evil-define-key '(normal visual) paredit-mode-map
(kbd "C-(") #'transpose-sexps-backward ; override paredit-backward-slurp-sexp
(kbd "C-)") #'transpose-sexps-forward ; override paredit-forward-slurp-sexp
)
>>
>>107431687
>override paredit-backward-slurp-sexp
>override paredit-forward-slurp-sexp
These were also bound to C-M-<left> and C-M-<right>, so I left those alone and took C-( and C-) for myself.

Also, the original transpose-sexp is bound to C-M-t and to go the other direction, you have to C-u C-M-t. It was kinda sensitive to cursor positioning too. (My take on it is also a bit sensitive to cursor positioning, but it tries to be a tiny bit smarter about it.)
>>
(cons '(e m a c) '(l i p))
>>
>>107431966
;; Is this what you really wanted?
((e m a c) l i p)
>>
File: 2025-12-04_05-47-19.png (221 KB, 1647x1556)
221 KB
221 KB PNG
4g.el

>>107312115
>Here's what I have currently:
>https://bpa.st/FIWA (expired)
https://pastebin.com/e0ML0U8s (temporary until the original author posts a public repo)

This version is very usable. It has everything I really want. Anything else after this feels like gravy.

>>107274957
I'm referencing this older post for easy access to the TODO list.



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.