## Installing Common Lisp + Emacs + Slime on MacOS (all platforms) (If you do not want emacs skip steps 1,2,6,7 and 8 and just use the CLOG Builder) 1. Install Emacs for Mac OS from - https://emacsformacosx.com/ 2. [optional] Add Emacs to your system's path by creating a file /etc/paths.d/emacs with: ``` /Applications/Emacs.app/Contents/MacOS ``` 3. Install Homebrew - https://brew.sh/ ``` /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` 4. Install a Common Lisp compiler, ie. sbcl ``` brew install sbcl ``` 5. Install QuickLisp ``` curl -o /tmp/ql.lisp http://beta.quicklisp.org/quicklisp.lisp sbcl --no-sysinit --no-userinit --load /tmp/ql.lisp \ --eval '(quicklisp-quickstart:install :path "~/.quicklisp")' \ --eval '(ql:add-to-init-file)' \ --quit ``` 6. Install Slime ``` sbcl --eval '(ql:quickload :quicklisp-slime-helper)' --quit ``` 7. Modify or create ~/.emacs.d/init.el with the lines ``` (load (expand-file-name "~/.quicklisp/slime-helper.el")) (setq inferior-lisp-program "sbcl") ``` 8. You can now start emacs graphically or if did option 2 from terminal using emacs (and if desire terminal version use emacs -nw) and then use M-x slime 9. Install the UltraLisp distro for recent software for quicklisp: ``` (ql-dist:install-dist "http://dist.ultralisp.org/" :prompt nil) (ql:update-all-dists) ; run newest updates ``` 10. Of course install CLOG an CLOG Builder for a rich GUI Lisp IDE ``` (ql:quickload :clog/tools) (clog-tools:clog-builder) ``` or at the command line: ``` run-builder ``` Tip: If use emacs graphically, you may find it easier to set the apple command key to also act as a Meta key: ``` (setf ns-command-modifier 'meta) ;; Since we map command to meta let meta ` switch frames (global-set-key "\M-`" 'other-frame) ``` Tip: If using emacs in the terminal (ie emacs -nw) in terminal preferances under profiles and under the default profile choose "Use Option as Meta". I also add the following to my ~/.emacs.d/init.el: ``` ;; Selecting with mouse is an emacs selection (xterm-mouse-mode t) ;; Fix mouse wheel under xterm-mouse-mode (global-set-key (kbd "") (kbd "C-p")) (global-set-key (kbd "") (kbd "C-n")) ``` - [Learn about CLOG](README.md) - [Learn Common-Lisp](LEARN.md)