---
title: Editor Integration - Emacs
permalink: editors-emacs.html
created_at: 1999-04-06
last_modified_at: 2022-12-12 17:34:00 +0000
---
# Integration with Emacs
[](https://melpa.org/#/boxes)
The easiest way is to install the `boxes` package from [MELPA](https://melpa.org/#/boxes), however it can also be installed manually if desired:
- Installation from MELPA
1. Make sure [MELPA is in your package archives list](https://melpa.org/#/getting-started).
2. `M-x package-install boxes`
3. Add key bindings for the `boxes` commands to your startup file:
```emacs-lisp
(global-set-key "\C-cb" 'boxes-command-on-region)
(global-set-key "\C-cq" 'boxes-create)
(global-set-key "\C-cr" 'boxes-remove)
```
4. Alternatively, if `use-package` is installed you can automatically install the `boxes` binary & elisp packages and
add the key bindings with the following form, just like magic 😊
```emacs-lisp
(use-package boxes
:ensure t
:ensure-system-package boxes
:bind (("C-c b" . boxes-command-on-region)
("C-c q" . boxes-create)
("C-c r" . boxes-remove)))
```
- Manual Installation
1. [Download](https://github.com/{{ site.github }}/blob/master/doc/boxes.el) `boxes.el` to a directory and add it
to your `load-path`:
```emacs-lisp
(add-to-list 'load-path )
```
2. Add autoloads to your startup file so `boxes` will be loaded on first use:
```emacs-lisp
(autoload 'boxes-command-on-region "boxes" nil t)
(autoload 'boxes-remove "boxes" nil t)
(autoload 'boxes-create "boxes" nil t)
```
3. Add key bindings for the `boxes` commands to your startup file:
```emacs-lisp
(global-set-key "\C-cb" 'boxes-command-on-region)
(global-set-key "\C-cq" 'boxes-create)
(global-set-key "\C-cr" 'boxes-remove)
```