ff8cd06046
- lists were not correctly indented sometimes - **note** and such things do not exist in org - Note and Important - Change Feature list to heading - Change TODOS to actual org TODOS - Add TOC to python layer - list indentation - some typos I could not leave unchanged - TODO formatting - List indentation - typos - wrong markup fix conversion issues
101 lines
3.4 KiB
Org Mode
101 lines
3.4 KiB
Org Mode
#+TITLE: Shell contribution layer for Spacemacs
|
|
|
|
[[file:img/shell.png]]
|
|
|
|
* Table of Contents :TOC@4:
|
|
- [[#description][Description]]
|
|
- [[#install][Install]]
|
|
- [[#layer][Layer]]
|
|
- [[#default-shell][Default shell]]
|
|
- [[#default-shell-position-and-height][Default shell position and height]]
|
|
- [[#set-shell-for-term-and-ansi-term][Set shell for term and ansi-term]]
|
|
- [[#key-bindings][Key bindings]]
|
|
- [[#multi-term][Multi-term]]
|
|
|
|
* Description
|
|
|
|
This layer configures the various shells available in Emacs.
|
|
|
|
* Install
|
|
|
|
** Layer
|
|
|
|
To use this contribution add it to your =~/.spacemacs=
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq-default dotspacemacs-configuration-layers '(shell))
|
|
#+END_SRC
|
|
|
|
** Default shell
|
|
|
|
Emacs supports three types of shell:
|
|
- the Emacs shell
|
|
- the inferior shell
|
|
- the terminal emulator
|
|
- the ANSI terminal emulator
|
|
|
|
You can find a quick introductions to them [[https://www.masteringemacs.org/article/running-shells-in-emacs-overview][here]].
|
|
|
|
To define the default shell you can set the layer variable =shell-default-shell=
|
|
to the following variables:
|
|
- =eshell=
|
|
- =shell=
|
|
- =term=
|
|
- =ansi-term=
|
|
- =multi-term=
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq-default dotspacemacs-configuration-layers
|
|
'(shell :variables shell-default-shell 'eshell))
|
|
#+END_SRC
|
|
|
|
The default shell is quickly accessible via a the default shortcut key ~SPC '~.
|
|
|
|
** Default shell position and height
|
|
|
|
It is possible to choose where the shell should pop up by setting the variable
|
|
=shell-default-position= to either =top=, =bottom= or =full=. It is not possible
|
|
to show it on the side for now. Default value is =bottom=. It is also possible
|
|
to set the default height in percents with the variable =shell-default-height=.
|
|
Default value is =30=.
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq-default dotspacemacs-configuration-layers
|
|
'(shell :variables
|
|
shell-default-position 'bottom
|
|
shell-default-height 30))
|
|
#+END_SRC
|
|
|
|
** Set shell for term and ansi-term
|
|
|
|
The default shell can be set by setting the variable =shell-default-term-shell=.
|
|
Default value is =/bin/bash=.
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq-default dotspacemacs-configuration-layers
|
|
'(shell :variables shell-default-term-shell "/bin/bash"))
|
|
#+END_SRC
|
|
|
|
* Key bindings
|
|
|
|
| Key Binding | Description |
|
|
|-------------+------------------------------------------------------------|
|
|
| ~SPC '~ | Open, close or go to the default shell |
|
|
| ~SPC a s e~ | Open, close or go to an =eshell= |
|
|
| ~SPC a s i~ | Open, close or go to a =shell= |
|
|
| ~SPC a s m~ | Open, close or go to a =multi-term= |
|
|
| ~SPC a s t~ | Open, close or go to a =ansi-term= |
|
|
| ~SPC a s T~ | Open, close or go to a =term= |
|
|
| ~SPC m h~ | browse history with =helm= (works in =eshell= and =shell=) |
|
|
| ~C-j~ | next item in history |
|
|
| ~C-k~ | previous item in history |
|
|
|
|
*Note:* You can open multiple shells using a numerical prefix argument,
|
|
for instance pressing ~2 SPC ;~ will a second default shell, the
|
|
number of shell is indicated on the mode-line.
|
|
|
|
** Multi-term
|
|
|
|
| Key Binding | Description |
|
|
|-------------+------------------------------|
|
|
| ~SPC p $ t~ | run multi-term shell in root |
|