# EMacs Configuration
Version 2 of my Emacs Configuration updated for Emacs 28.2. Most bindings are kept default. If there are binding changes
they are listed here.
Clone this repo into your home directory using:
```
git clone git@git.xchg.sh:angrygoats/emacs-config.git .emacs.d
```
## Server
By default `init.el` spins up an Emacs server as it's last task. You can set `EDITOR` to `emacsclient` in order to use your existing
Emacs session quickly for tasks like mail (if you use a text-based mail editor). See this [helpful documentation ](https://www.nongnu.org/emacsdoc-fr/manuel/emacs-server.html ) on using Emacs as a server.
## Private Configurations
Sometimes you have certain things that a library might require but you don't want committed to your dotfiles. This git
project will ignore `private.el` . You may put your private information in `~/.emacs.d/elisp/private.el` for it to be loaded.
## IBuffer
`ibuffer` has been configured to filter/folderize common things such as source code, magit, etc for easier management. To launch it, use `C-x C-b` .
## Markdown
For full use of the markdown mode you will need a markdown preprocessor installed such as pandoc or multimarkdown.
The current configuration is set to use multimarkdown. You may wish to install it using your package manager.
## Git
`magit` is installed. [Learn to use it ](https://emacsair.me/2017/09/01/magit-walk-through/ ).
## Neotree
A nice tree is provided (with icons) by `Neotree` . You can toggle the tree by using ``C-```
## Project Management
`Projectile` is installed. You may learn more about how to use it [here ](https://github.com/bbatsov/projectile ).
## Syntax Checking
`flycheck` is installed. To list errors found by flycheck you can click the modeline
error indicator or type `C-c ! l` to list them in a new buffer.
## Switching Between Windows
To go forward and backward between windows the bindings have been changed to `C-.` and `C-,` respectively. Now,
you can simply hold control and press one more key in order to switch between windows easily. Additionally
you may use `M-<arrow>` where `<arrow>` is your left, right, up, or down arrow key in order to move between windows.
## Languages
### Lisp
`SLIME` is installed and automatically configured to `sbcl` . To evalute the current `defun` in `SLIME` press `<f2>` . To evalute
the buffer press `<f1>` .
### Notes on SLIME
When starting you may get an error about an improper number of arguments being passed. Upon tracing the error you will see that
something in `hyperspec.el` is causing an issue. The fix that worked for me is to manually run `SLIME` via `M-x slime` . After that
things will get compiled and `use-package` will then proceed to work as normal. For a first installation even `use-package` may fail.
In this case you will need to do `M-x package-install` and type `slime` to install `SLIME` and then proceed with the fix.