From 4685104ec66d8bc20c67e6ef410ed6662096ef2e Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Thu, 14 Apr 2011 07:17:10 +0200 Subject: [PATCH] More comments --- plugins/emacs/emacs.plugin.zsh | 30 ++++++++++++++++++++++++++++++ plugins/emacs/emacsclient.sh | 11 +++++++++++ 2 files changed, 41 insertions(+) create mode 100644 plugins/emacs/emacs.plugin.zsh create mode 100755 plugins/emacs/emacsclient.sh diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh new file mode 100644 index 000000000..62d9fbccc --- /dev/null +++ b/plugins/emacs/emacs.plugin.zsh @@ -0,0 +1,30 @@ +# Emacs 23 daemon capability is a killing feature. +# One emacs process handles all your frames whether +# you use a frame opened in a terminal via a ssh connection or X frames +# opened on the same host. + +# Benefits are multiple +# - You don't have the cost of starting Emacs all the time anymore +# - Opening a file is as fast as Emacs does not have anything else to do. +# - You can share opened buffered across opened frames. +# - Configuration changes made at runtime are applied to all frames. + + +if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then + export EDITOR="$ZSH/plugins/emacs/emacsclient.sh" + alias emacs="$EDITOR --no-wait" + alias e=emacs + + # same than M-x eval but from outside Emacs. + alias eeval="emacs --eval" + # create a new X frame + alias eframe='emacsclient --alternate-editor "" --create-frame' + + # to code all night long + alias emasc=emacs + alias emcas=emacs +fi + +## Local Variables: +## mode: sh +## End: diff --git a/plugins/emacs/emacsclient.sh b/plugins/emacs/emacsclient.sh new file mode 100755 index 000000000..b098fd24a --- /dev/null +++ b/plugins/emacs/emacsclient.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +# Starts emacs daemon if not already started. + +x=`emacsclient --alternate-editor '' --eval '(x-display-list)' 2>/dev/null` +if [ -z "$x" ] ;then + emacsclient --alternate-editor "" --create-frame $@ +else + # prevent creating another X frame if there is at least one present. + emacsclient --alternate-editor "" $@ +fi