spacemacs/layers/+tools/rebox/README.org
Kristoffer Haugsbakk 31a11abd54 Use RET instead of return for return key
It is an Emacs-wide convention to use `RET` when referring to the act of
pressing the return key.  Spacemacs seems to follow that convention as well.  So
fix some Org files that were deviating from this convention.

In particular, replace usages of `<return>` and `return` with `RET`.

Also update the description of an `M-RET` keybinding[1] based on the docstring
of `ido-select-text`.

[1]: Suggested-by: bmag <bmag@users.noreply.github.com>
2017-04-20 23:09:46 -04:00

343 lines
6.6 KiB
Org Mode

#+TITLE: Rebox layer
* Table of Contents :TOC_4_gh:noexport:
- [[#description][Description]]
- [[#features][Features]]
- [[#install][Install]]
- [[#layer][Layer]]
- [[#configuration][Configuration]]
- [[#styles-cycling][Styles cycling]]
- [[#text-mode][Text mode]]
- [[#style-templates][Style Templates]]
- [[#standard-packaged-templates][Standard packaged templates]]
- [[#comments][Comments]]
- [[#text-mode][Text Mode]]
- [[#c-mode][C Mode]]
- [[#additional-templates][Additional Templates]]
- [[#key-bindings][Key bindings]]
* Description
This layer adds support for [[https://github.com/lewang/rebox2][rebox2]] package which is a minor-mode allowing
to easily add ASCII text boxes to a buffer.
A nice video demonstration by the package author can be found [[https://www.youtube.com/watch?v=53YeTdVtDkU][here]].
** Features
- Auto-wrap correctly in comments,
- Auto-fill correctly in comments,
- Boxes auto-adapt as text is inserted or deleted,
- ~S-RET~ to continue a comment on the next line,
- Kill/yank within the box,
- Apparently works well with ancient ~filladpt-mode~ (see authors video).
* Install
** Layer
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
add =rebox= to the existing =dotspacemacs-configuration-layers= list in this
file.
** Configuration
*** Styles cycling
Box styles are identified by numbers, it is possible to cycle through a list
of styles using ~SPC x b n~. This list can be customized by setting the variable
=rebox-style-loop=.
#+BEGIN_SRC emacs-lisp
(setq rebox-style-loop '(71 72 73))
#+END_SRC
*** Text mode
As text mode usage could surprise some users (e.g., when they enter M-q to fill
a paragraph) =rebox= is not enabled by default in =text-mode=. To enable it you
need to set the layer variable =rebox-enable-in-text-mode= to =t=.
#+begin_src emacs-lisp
(setq-default dotspacemacs-configuration-layers '(
(rebox :variables rebox-enable-in-text-mode t)))
#+end_src
* Style Templates
** Standard packaged templates
*** Comments
These templates are single line comments styles. A =#= is used here for
illustration; however, it will work equally well if the comment character is
different (e.g., lisp's =;= comment character).
#+begin_src sh
#box-style 10
# box style 11
# box style 12 #
# ------------ #
# ------------ #
# box style 13 #
# ------------ #
# box style 14 #
################
################
# box style 15 #
################
#,----
#| box style 16
#`----
#,-------------
#| box style 17
#`-------------
##box style 20
## box style 21
## box style 22 ##
## ------------ ##
## ------------ ##
## box style 23 ##
## ------------ ##
## box style 24 ##
##################
##################
## box style 25 ##
##################
##,----
##| box style 26
##`----
##,-------------
##| box style 27
##`-------------
###box style 30
# and so on repeating up to styles 5x which have 5 leading comment characters
#+end_src
*** Text Mode
#+begin_src text
box style 111
| box style 112 |
+---------------+
+---------------+
| box style 113 |
+---------------+
| box style 114 |
*===============*
*===============*
| box style 115 |
*===============*
-------------
box style 116
-------------
| box style 121 |
| box style 122 |
`---------------'
.---------------.
| box style 123 |
`---------------'
| box style 124 |
\===============/
/===============\
| box style 125 |
\===============/
,----
| box style 126
`----
,--------------
| box style 127
`--------------
,----
| box style 136
`----
,--------------
| box style 137
`--------------
| box style 141
** box style 142 *
******************
******************
** box style 143 *
******************
X box style 144 X
XXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXX
X box style 145 X
XXXXXXXXXXXXXXXXX
#+end_src
*** C Mode
*Note* this mode is disabled for now due to bugs in rebox.
#+begin_src c
/* box style 111 */
/* box style 112 */
/* ------------- */
/* ------------- */
/* box style 113 */
/* ------------- */
/* box style 114 */
/* ============= */
/* ============= */
/* box style 115 */
/* ============= */
/*
box style 221
*/
/* .
| box style 222 |
`--------------*/
/*--------------.
| box style 223 |
`--------------*/
/* \
| box style 224 |
\==============*/
/*==============\
| box style 225 |
\==============*/
/*
| box style 231
*/
/*
| box style 232 |
*---------------*/
/*---------------*
| box style 233 |
*---------------*/
/* box style 234 */
/*---------------*/
/*---------------*/
/* box style 235 */
/*---------------*/
/*
* box style 241
*/
/* *
* box style 242 *
*****************/
/*****************
* box style 243 *
*****************/
/* box style 244 */
/*****************/
/*****************/
/* box style 245 */
/*****************/
/****************//**
* box style 246
********************/
#+end_src
** Additional Templates
These templates are added by the Spacemacs layer.
#+begin_src sh
#
# box style 71
#
# ------------
# box style 72
# ------------
# ============
# box style 73
# ============
#--------------
# box style 74
#--------------
#--------------+
# box style 75
#--------------+
#==============
# box style 76
#==============
##
## box style 81
##
## ------------
## box style 82
## ------------
## ============
## box style 83
## ============
##--------------
## box style 84
##--------------
##--------------+
## box style 85
##--------------+
##==============
## box style 86
##==============
#+end_src
* Key bindings
*Note:* Use a numerical prefix argument to choose a specific style for instance
~86 SPC x b b~ to use the style 86 above.
| Keybinding | Command |
|-------------+-------------------------------------------------------------------|
| ~SPC x b >~ | Move box to the right (point must be around left side of the box) |
| ~SPC x b <~ | Move box to the left (point must be around left side of the box) |
| ~SPC x b b~ | Draw next box defined in =rebox-style-loop= |
| ~SPC x b B~ | Draw previous box defined in =rebox-style-loop= |
| ~SPC x b c~ | Center box (point must be around left side of the box) |
| ~S-RET~ | rebox-indent-new-line |