summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/emacs/emacs.plugin.zsh25
-rwxr-xr-xplugins/emacs/emacsclient.sh1
2 files changed, 23 insertions, 3 deletions
diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh
index bca79e70e..62d9fbccc 100644
--- a/plugins/emacs/emacs.plugin.zsh
+++ b/plugins/emacs/emacs.plugin.zsh
@@ -1,11 +1,30 @@
-# Use daemon capabilities of emacs 23
+# 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
- # create a new X frame
- alias emacs_frame='emacsclient --alternate-editor "" --create-frame'
fi
+
+## Local Variables:
+## mode: sh
+## End:
diff --git a/plugins/emacs/emacsclient.sh b/plugins/emacs/emacsclient.sh
index 3475926a6..b098fd24a 100755
--- a/plugins/emacs/emacsclient.sh
+++ b/plugins/emacs/emacsclient.sh
@@ -6,5 +6,6 @@ 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