Coder Social home page Coder Social logo

elscreen's Introduction

ElScreen

This is a fork of ElScreen updated for Emacs 24 and package.el. ElScreen is an Emacs utility with which you can have multiple screens (window-configuration) on your GNU Emacs as well as GNU screen on terminal.

If you use emacs-lisp applications which have many windows (like Gnus, irchat, Wanderlust, Mew...), ElScreen makes it easy to switch to a different screen, with its configuration unchanged. You can also create and kill screen, jump to them, rename the screen, and so on.

This version of ElScreen does not require any external dependencies.

Installation

The preferred way to install ElScreen is through MELPA and package.el. If you have Emacs 24, you should already have package.el. To enable MELPA, add something like the following in your .emacs.d/init.el file:

(add-to-list 'package-archives
     '("melpa" . "http://melpa.org/packages/") t)

Once you have installed ElScreen, you can activate it like so:

(elscreen-start)

Usage

You may use following sequences on ElScreen:

C-z c
C-z C-c
Create a new screen and switch to it.

C-z C
Create a new screen with the window-configuration of the current screen.

C-z k
C-z C-k
Kill current screen.

C-z M-k
Kill current screen and buffers.

C-z K
Kill other screens.

C-z n
C-z C-n
Switch to the "next" screen in a cyclic order.

C-z p
C-z C-p
Switch to the "previous" screen in a cyclic order.

C-z a
C-z C-a
Toggle to the screen selected previously.

C-z '
Prompt for a screen number to switch to.

C-z "
Present a list of all screens for selection.

C-z 0..9
Jump to the screen number 0-9.

C-z C-s
Swap current screen with previous one.

C-z w
C-z C-w
Show a list of screen.

C-z A
Allow the user to enter a name for the current screen.

C-z m
C-z C-m
Repeat the last message displayed in the mini-buffer.

C-z t
C-z C-t

C-z b
Switch to the screen in which specified buffer is splayed.

C-z C-f
Create new screen and open file.

C-z C-r
Create new screen and open file but don't allow changes.

C-z d
Create new screen and run dired.

C-z M-x
Read function name, then call it with new screen.

C-z i
Show/hide the screen number in the mode line.

C-z T
Show/hide the tab on the top of each frame.

C-z v
Display ElScreen version.

C-z ?
Show key bindings of ElScreen and Add-On softwares.

Setup

You can set the following variables to configure ElScreen. These can be set in .emacs file directly or "Options" in your menu bar.

elscreen-prefix-key

ElScreen prefix-key. The default value is \C-z.

elscreen-buffer-to-nickname-alist

The pairs of buffer-name and corresponding screen nickname or function that returns nickname, which are listed by elscreen-display-screen-name-list only when major-mode cannot determine its screen nickname. The default value is:

    '(("^dired-mode$" .
       (lambda ()
         (format "Dired(%s)" dired-directory)))
      ("^Info-mode$" .
       (lambda ()
         (format "Info(%s)" (file-name-nondirectory Info-current-file))))
      ("^mew-draft-mode$" .
       (lambda ()
         (format "Mew(%s)" (buffer-name (current-buffer)))))
      ("^mew-" . "Mew")
      ("^irchat-" . "IRChat")
      ("^liece-" . "Liece")
      ("^lookup-" . "Lookup"))

elscreen-mode-to-nickname-alist

The pairs of major-mode and corresponding screen nickname or function that returns nickname, which are listed by elscreen-display-screen-name-list. The default value is:

    '(("[Ss]hell" . "shell")
      ("compilation" . "compile")
      ("-telnet" . "telnet")
      ("dict" . "OnlineDict")
      ("*WL:Message*" . "Wanderlust"))

elscreen-display-screen-number

If non nil, show the number of the current screen in mode line. The default value is t.

elscreen-display-tab

Specify how the tabs at the top of frame should be displayed. t means to display tabs whose width should be calculated automatically. A value of integer means to display tabs with fixed width of this value. nil means don't display tabs. The default value is t.

elscreen-tab-display-control

If non nil, display the tab (labeled with [<->]) to switch to next/previous screen or create new screen at the most left side of the tab line. The default value is t.

elscreen-tab-display-kill-screen

Location of the icon ([X]) to kill corresponding screen on each tab. Possible values are 'left, 'right and nil (to hide icons). The default value is 'left.

Bugs

Under multiple-frame environment, screen numbers displayed on mode line of each frame is changed at the same time. On GNU Emacs 21, tabs also has this restriction.

Acknowledgment

Many people contributed to ElScreen by reporting problems or suggesting various improvements. Here is a list of these people.

  • Tohru Sugayama
  • Yoshinobu Takenaga
  • Masatoshi Takamura
  • Jin Kashimura
  • Takahiko Sakai
  • Norio Suzuki
  • Yoshitatsu Takeshita
  • Yoichi Nakayama
  • [email protected]
  • Dan Debertin
  • Yoshinori Koseki
  • Hideyuki Shirai
  • Masahiro Ishiyama
  • Alexy Khrabrov
  • Toshio Ito

elscreen's People

Contributors

papaeye avatar syohex avatar shosti avatar debug-ito avatar momomo5717 avatar

Stargazers

 avatar Hiroaki Honda avatar Naoya Yamashita avatar  avatar Akira Tamamori avatar Elan avatar  avatar  avatar Andrii Tykhonov avatar takumikinjo avatar Hiroki OHTSUKA avatar Ryosuke Sato avatar Takashi M avatar  avatar Masahiro Sano avatar

Watchers

KITAMURA Daisuke avatar Kazuhiro NISHIYAMA avatar Kozo Nishida avatar Yuhei Maeda avatar Ryo Takaishi avatar Takaaki ISHIKAWA avatar  avatar James Cloos avatar Masahiro Sano avatar  avatar masaaki1001 avatar Naoya Yamashita avatar  avatar

elscreen's Issues

byte-compile problem

I got following message when I byte-compile.

elscreen.el:1463:30:Error: Symbol's function definition is void: elscreen--set-alist

nishikawasasaki's patch is able to fix this issue.
nishikawasasaki's elscreen

C-z c で Wrong type argument: consp, nil

https://raw.github.com/emacs-jp/elscreen/fixed/elscreen.el で C-z c が Wrong type argument: consp, nil になって動きません。

Ubuntu 12.04 LTS の GNU Emacs 23.3.1 (x86_64-pc-linux-gnu) of 2013-05-17 on panlong, modified by Debian と Mac OS X で homebrew でインストールした GNU Emacs 24.3.1 (x86_64-apple-darwin12.5.0, NS apple-appkit-1187.39) のどちらでも同じエラーになります。

再現手順は以下の通りです。

  • elscreen.el をダウンロードしておく。
  • --no-init-file で起動
  • elscreen.el を開いて M-x eval-buffer を2回 (なぜか1回では有効にならない)
  • (backtrace のために M-x toggle-debug-on-error)
  • C-z c で以下のエラー発生
Debugger entered--Lisp error: (wrong-type-argument consp nil)
  setcdr(nil (0))
  (let ((screen-history (elscreen-get-conf-list (quote screen-history)))) (setcdr (last screen-history) (list screen)))
  elscreen-append-screen-to-history(0)
  (let ((screen-list (sort (elscreen-get-screen-list) (quote <))) (screen 0)) (elscreen-set-window-configuration (elscreen-get-current-screen) (elscreen-current-window-configuration)) (while (eq (nth screen screen-list) screen) (setq screen (+ screen 1))) (elscreen-set-window-configuration screen (elscreen-default-window-configuration)) (elscreen-append-screen-to-history screen) (elscreen-notify-screen-modification (quote force)) (run-hooks (quote elscreen-create-hook)) screen)
  (cond ((>= (elscreen-get-number-of-screens) 10) (if noerror nil (elscreen-message "No more screens.")) nil) (t (let ((screen-list (sort (elscreen-get-screen-list) (quote <))) (screen 0)) (elscreen-set-window-configuration (elscreen-get-current-screen) (elscreen-current-window-configuration)) (while (eq (nth screen screen-list) screen) (setq screen (+ screen 1))) (elscreen-set-window-configuration screen (elscreen-default-window-configuration)) (elscreen-append-screen-to-history screen) (elscreen-notify-screen-modification (quote force)) (run-hooks (quote elscreen-create-hook)) screen)))
  elscreen-create-internal()
  (let ((screen (elscreen-create-internal))) (if screen (elscreen-goto screen)))
  elscreen-create()
  call-interactively(elscreen-create nil nil)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.