spacemacs/layers/+tools/rebox/README.org

3.8 KiB

Rebox layer

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.

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.

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

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

Style Templates

Standard packaged templates

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

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

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

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