Table of Contents

Rebox layer

Table of ContentsClose

1. Description

This layer adds support for 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 here.

1.1. 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).

2. Install

2.1. 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.

2.2. Configuration

2.2.1. 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.

(setq rebox-style-loop '(71 72 73))

2.2.2. 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.

(setq-default dotspacemacs-configuration-layers '(
    (rebox :variables rebox-enable-in-text-mode t)))

3. Style Templates

3.1. Standard packaged templates

You can find the full list of templates in "Box templates" section of rebox2.el

3.1.1. 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).

3.2. Additional Templates

These templates are added by the Spacemacs layer.

#
# 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
##==============

4. 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.

Key binding 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

Author: root

Created: 2024-03-22 Fri 20:48

Validate