|Description||Emacs window session manager|
Emacs Lisp screen is a tabbed window session manager modeled after GNU screen.
GNU Emacs is more of an “environment” than just an editor, since it has the strong configuration language, emacs-lisp. There are a lot of applications written in emacs-lisp, and you may run many applications on your Emacs at the same time, i.e. e-mail reader, news reader, IRC client, a kind of IDE, etc. These applications likely consist of two or more windows, so when you switch among applications, you may want to save or restore how windows are located (this is called as “window-configuration”). Note that for managing multiple buffers, you may want to use something else, like ido.
- 1 Installation
- 2 Basic usage
- 3 Configuration
- 4 See also
With el-get : M-x el-get-install RET elscreen, and done.
Download it at http://www.morishima.net/~naoto/elscreen-en/?lang=en
Click on the menu or type [ C-z ?] (or M-x elscreen-help) to see full help. The prefix key of elscreen is C-z.
- [C-z C-c] (or M-x elscreen-create)
- create a new screen and switch to it.
- [C-z C] (or M-x elscreen-clone &optional SCREEN)
- create a new screen with the window-configuration of SCREEN. If SCREEN is omitted, current screen is used.
- [C-z p] (or M-x elscreen-previous)
- switch to the previous screen. 'n' will go to next.
C-z is the prefix key, but you still can iconify emacs with C-x C-z. (see C-h w iconify-or-deiconify)
Change prefix key
This variable must be set before elscreen is loaded :
(setq elscreen-prefix-key “\C-z”)
alternatively, you can change it when elscreen is loaded :
Use C-prior and C-next to change tabs
Add into your ~/.emacs :
(global-set-key (kbd "<C-prior>") 'elscreen-previous) (global-set-key (kbd "<C-next>") 'elscreen-next)
Give each screen its own buffer-list
Persistent screens accross sessions
This is easily achievable with the elscreen-persist package on MELPA. To use it, you can either enable a mode, which will do the job automatically, either manually call a function to store and restore your current screens.
Use a hydra
Here's an example hydra to manipulate elscreens:
(defhydra hydra-elscreen (:color red :hint nil) " elscreen _c_reate _n_ext _s_tore _k_ill _p_revious _r_estore _C_lone _g_oto" ("c" elscreen-create) ("C" elscreen-clone) ("k" elscreen-kill) ("n" elscreen-next) ("p" elscreen-previous) ("s" elscreen-store) ("r" elscreen-restore) ("g" elscreen-goto) )
Escreen, an alternative
Separate buffers per projects
elscreen-multi-term: manage a term per screen
See this wiki entry.