spacemacs-layouts layer
Table of ContentsClose
1. Description
This layer adds support for distinct layouts/workspaces to Spacemacs.
Layouts provide an easy way to group buffers for a project or any arbitrary buffer grouping you wish. Layouts also restrict actions to the buffers in the current layout.
1.1. Features:
- Support for distinct layouts via
eyebrowse
- Integration with
helm
andivy
to search for buffers within layouts
2. Install
The spacemacs-layouts
layer is included by default in the Spacemacs distribution.
To set configuration layer variables, add spacemacs-layouts
to the existing
dotspacemacs-configuration-layers
list in your ~/.spacemacs
file.
2.1. Restrict functions to the current layout's buffers
Besides helm-mini
and ivy-switch-buffer
that are aware of a layout's
buffers. This layer also provides a spacemacs-layouts-restricted-functions
variable that holds a list of functions that will be restricted to the current
layout's buffers.
Default value of spacemacs-layouts-restricted-functions
is:
'(spacemacs/window-split-double-columns spacemacs/window-split-triple-columns spacemacs/window-split-grid)
The list can be edited in the dotspacemacs-configuration-layers
variable near
the top of .spacemacs
like this:
(spacemacs-layouts :variables spacemacs-layouts-restricted-functions '(spacemacs/window-split-double-columns spacemacs/window-split-triple-columns spacemacs/window-split-grid))
Note that spacemacs-layouts-restricted-functions
can only be changed in the
dotspacemacs-configuration-layers
variable. They can't be edited during the
current Emacs session. A restart is required.
2.2. Restrict SPC-TAB to the current layout's buffers
When the spacemacs-layouts-restrict-spc-tab
variable is set to t
, then
SPC-TAB
(spacemacs/alternate-buffer
) will be restricted to only switch
between the current layout's buffers.
Default value of spacemacs-layouts-restrict-spc-tab
is nil
.
It can be enabled in the dotspacemacs-configuration-layers
variable near the
top of .spacemacs
like this:
(spacemacs-layouts :variables spacemacs-layouts-restrict-spc-tab t)
Note that spacemacs-layouts-restrict-spc-tab
also can be toggle on the fly by
evaluating it like this:
(setq spacemacs-layouts-restrict-spc-tab t)
2.3. Kill buffers when killing current layout
SPC l x
kills the current layout and the buffers stay open by default.
persp-autokill-buffer-on-remove
controls what happens when a layout is killed
nil
keeps all buffers
kill-weak
kills a buffer if it is not in any other layout except default
t
will kill all buffers in the current layout
(spacemacs-layouts :variables persp-autokill-buffer-on-remove 'kill-weak)
If this variable is not set, then SPC l x
kills the current layout, the buffers
remain open and listed in the default layout.
3. Usage
Layout 1 is the default layout and has global scope, so SPC b b
lists all open
buffers. All other layouts only show the buffers associated with that layout.
SPC l
to select from the current layouts by number or navigate with n
/ p
?
will display the help menu.
SPC l l
to select or create a layout by typing the layout name.
SPC l d
to close the current layout, SPC l x
to kill the current layout.
See key bindings for more layout commands.
4. Key bindings
Key binding | Description |
---|---|
SPC l ? |
toggle hint in layouts transient state |
SPC l 1 |
switch to layout 1 |
SPC l 2 |
switch to layout 2 |
SPC l 3 |
switch to layout 3 |
SPC l 4 |
switch to layout 4 |
SPC l 5 |
switch to layout 5 |
SPC l 6 |
switch to layout 6 |
SPC l 7 |
switch to layout 7 |
SPC l 8 |
switch to layout 8 |
SPC l 9 |
switch to layout 9 |
SPC l 0 |
switch to layout 0 |
SPC l C-1 |
switch to layout 11 |
SPC l C-2 |
switch to layout 12 |
SPC l C-3 |
switch to layout 13 |
SPC l C-4 |
switch to layout 14 |
SPC l C-5 |
switch to layout 15 |
SPC l C-6 |
switch to layout 16 |
SPC l C-7 |
switch to layout 17 |
SPC l C-8 |
switch to layout 18 |
SPC l C-9 |
switch to layout 19 |
SPC l C-0 |
switch to layout 20 |
SPC l TAB |
jump to last layout |
SPC l RET |
exit layout transient state |
SPC l C-h |
previous layout |
SPC l C-l |
next layout |
SPC l < |
move current layout left |
SPC l > |
move current layout right |
SPC l a |
add buffer to layout |
SPC l A |
import buffers |
SPC l b |
list buffers open in layout |
SPC l d |
close current layout (keeps buffers open) |
SPC l e |
switch to/create layout at position |
SPC l D |
close-other layout |
SPC l h |
Switch to default layout |
SPC l L |
Load saved layouts from a file |
SPC l l |
select or create a layout by name |
SPC l n |
next layout |
SPC l N |
previous layout |
SPC l o |
select custom layout |
SPC l p |
persp-prev |
SPC l r |
remove buffer from layout |
SPC l R |
rename layout |
SPC l s |
save current layouts to file |
SPC l S |
save current layouts to file by names |
SPC l t |
temporarily display buffer |
SPC l w |
workspaces transient state |
SPC l x |
kill current layout |
SPC l X |
kill other layout |