Compare commits

...

4 Commits

View File

@ -137,24 +137,24 @@ Here follows a list of interesting Emacs configurations:
discussion [[https://github.com/purcell/emacs.d/issues/778][The order of company candidates is incorrect in Emacs lisp mode]].
Here follows a list of links on how to use Emacs and Elisp:
1. [[https://www.youtube.com/watch?v=lkIicfzPBys][A guided tour of Emacs]] is a link to a video tour pointing how [[info:emacs#Buffers][buffers (info)]],
1. [[https://www.masteringemacs.org/][Mastering Emacs]] is a link to a blog with many interesting posts that promotes
a book on how to become a proficient Emacs user.
2. [[https://www2.lib.uchicago.edu/keith/emacs/][Use GNU Emacs: The Plain Text Computing Environment]] explains the fundamentals
of the Emacs abstractions before showing how to exploit those abstractions
interactively. It targets a similar audience as the [[https://www.masteringemacs.org/][Mastering Emacs]] book.
3. [[https://www.youtube.com/watch?v=lkIicfzPBys][A guided tour of Emacs]] is a link to a video tour pointing how [[info:emacs#Buffers][buffers (info)]],
[[info:emacs#Dired][dired (info)]], [[info:emacs#Help][documentation (info)]], [[info:elisp#Top][elisp (info)]], [[info:elisp#Debugging][elisp debugging (info)]],
[[info:eshell#Top][eshell (info)]], and [[info:emacs#Keyboard Macros][keyboard macros (info)]] turn Emacs in an powerful coding
and editing environment.
2. [[https://www.youtube.com/watch?v=6ZWp05OW1c0][Emergency Emacs]] is a link to a video on fundamental editing features and
4. [[https://www.youtube.com/watch?v=6ZWp05OW1c0][Emergency Emacs]] is a link to a video on fundamental editing features and
principles with focus on [[info:ediff#Top][ediff (info)]], [[info:emacs#Undo][undo (info)]], [[info:emacs#Moving Point][moving point (info)]],
[[info:emacs#Erasing][erasing (info)]], and [[info:emacs#Dynamic Abbrevs][dynamic abbreviations (info)]].
2. [[https://endlessparentheses.com/][Endless Parentheses]] is a blog with many mindblowing code snippets.
3. [[https://www.murilopereira.com/how-to-open-a-file-in-emacs/][How to open a file in Emacs]] looks into [[info:elisp#Top][elisp (info)]] and
5. [[https://endlessparentheses.com/][Endless Parentheses]] is a blog with many mindblowing code snippets.
6. [[https://www.murilopereira.com/how-to-open-a-file-in-emacs/][How to open a file in Emacs]] looks into [[info:elisp#Top][elisp (info)]] and
[[info:elisp#Debugging][elisp debugging (info)]] and then compares Emacs, [[https://www.vim.org/][Vim]],
[[https://neovim.io/][Neovim]], and [[https://code.visualstudio.com/][Visual Studio Code]] with respect to values and technology.
4. [[https://protesilaos.com/codelog/2022-01-31-learning-emacs/][Learning Emacs and Elisp]] is a link to a video tutorial with a transcript on
7. [[https://protesilaos.com/codelog/2022-01-31-learning-emacs/][Learning Emacs and Elisp]] is a link to a video tutorial with a transcript on
the best approach to learn Emacs and Elisp.
5. [[https://www.masteringemacs.org/][Mastering Emacs]] is a link to a blog with many interesting posts that promotes
a book on how to become a proficient Emacs user.
6. [[https://www2.lib.uchicago.edu/keith/emacs/][Use GNU Emacs: The Plain Text Computing Environment]] explains the fundamentals
of the Emacs abstractions before showing how to exploit those abstractions
interactively. It targets a similar audience as the [[https://www.masteringemacs.org/][Mastering Emacs]] book.
* [[info:emacs#Early Init File][Early Init File (info)]]
:PROPERTIES:
@ -181,7 +181,7 @@ Try to load [[https://github.com/emacscollective/no-littering][no-littering]] as
;; Local Variables:
;; indent-tabs-mode: nil
;; End:
;;; earl-init.el ends here
;;; early-init.el ends here
#+end_src
In order to get help in understanding the code block above in a buffer showing
@ -286,6 +286,7 @@ recommendation of [[info:emacs#Saving Customizations][saving customizations (inf
(hyperbole . "gnu-devel")
(marginalia . "gnu-devel")
(org . "gnu-devel")
(osm . "gnu-devel")
(parsebib . "melpa-stable")
(queue . "gnu")
(rainbow-mode . "gnu")
@ -4093,7 +4094,7 @@ Listing [[lst:sbcl-core-for-sly]] tangles to a script to dump such a [[http://ww
#+caption: Configure =sly=.
#+name: lst:configure-sly
#+begin_src emacs-lisp -n :results silent
(when (ensure-package-installation 'sly)
(when (ensure-package-installation 'sly 'sly-named-readtables)
(with-eval-after-load 'sly
;; Set `sly-default-lisp' instead of `inferior-lisp-program',
;; because `sly' uses `inferior-lisp-program' only as a backwards
@ -4503,18 +4504,31 @@ git clone git@github.com:ageldama/cl-state-machine.git
#+caption: Register and load local =quicklisp= projects with dependencies.
#+name: lst:register-load-local-projects
#+begin_src lisp -n :eval never-export :results none :tangle no
;; SBCL on Darwin fails to run cl-cffi-gtk:
;; https://lisp-journey.gitlab.io/blog/gui-programming-in-common-lisp-part-3-of-5-gtk3/
;; https://www.crategus.com/books/cl-cffi-gtk/
;; https://www.crategus.com/books/cl-gtk/gtk-tutorial.html
(ql:register-local-projects)
(ql:quickload "cs325")
(ql:quickload "cl-state-machine")
(ql:quickload "cl-state-machine-examples")
(ql:quickload "cl-state-machine-graphing")
(ql:quickload "cl-state-machine-test")
(ql:quickload "named-readtables")
(ql:quickload "nodgui") ;; requires https://www.tcl.tk/software/tklib/
(ql:quickload "rutils")
(ql:quickload "rutilsx")
(ql:quickload "try") ;; "try" is a "named-readtables/test" requirement.
(ql:quickload "ucons")
(when (some #'identity (mapcar (lambda (x)
(let ((*default-pathname-defaults* x))
(probe-file "cl-state-machine")))
ql:*local-project-directories*))
(ql:quickload "cl-state-machine")
(ql:quickload "cl-state-machine-examples")
(ql:quickload "cl-state-machine-graphing")
(ql:quickload "cl-state-machine-test"))
#+end_src
#+caption[A =quicklisp= sbclrc file]:
#+caption: A =quicklisp= sbclrc file.
#+name: lst:quicklisp-sbclrc-file
#+begin_src lisp -n :eval never-export :tangle ~/.sbclrc
#+begin_src lisp -n :eval never :tangle ~/.sbclrc
;;; Hey Emacs, this is my -*- lisp -*- .sbclrc file.
;;; The following lines added by ql:add-to-init-file:
@ -4531,6 +4545,27 @@ git clone git@github.com:ageldama/cl-state-machine.git
;; (setq *package* (find-package :cs325-user)))
#+end_src
#+caption[Install =sbcli=]:
#+caption: Install =sbcli=.
#+name: lst:install-sbcli
#+begin_src emacs-lisp -n :eval never-export :lexical t :tangle no
(let ((url "https://raw.githubusercontent.com/hellerve/sbcli/master/repl.lisp")
(file "~/bin/sbcli"))
(url-copy-file url file 'ok-if-already-exists)
(set-file-modes file #o700))
#+end_src
#+caption[Tangle a =sbcli= resource file]:
#+caption: Tangle a =sbcli= resource file.
#+name: lst:write-sbslirc
#+begin_src lisp -n :eval never :tangle ~/.sbclirc
(setf *repl-name* "Gerard's custom REPL for SBCLI")
;; The style option fails:
;; (setf *pygmentize* (merge-pathnames ".pyenv/shims/pygmentize"
;; (user-homedir-pathname)))
;; (defvar *pygmentize-options* (list "-s" "-l" "lisp" "-O" "style=zenburn"))
#+end_src
** [[info:eintr#Top][Emacs Lisp Programming (info)]]
:PROPERTIES:
:CUSTOM_ID: sec:emacs-lisp-programming
@ -6165,6 +6200,17 @@ files.
application/pdf; emacsclient %s
#+end_src
*** [[https://github.com/minad/osm#readme][Open Street Map viewer for Emacs]]
:PROPERTIES:
:CUSTOM_ID: sec:open-street-map
:END:
#+begin_src emacs-lisp -n :silent nil
(when (ensure-package-installation 'osm)
(with-eval-after-load 'org
(require 'osm-ol)))
#+end_src
*** [[https://github.com/pashky/restclient.el#readme][Restclient]]
:PROPERTIES:
:CUSTOM_ID: sec:restclient