emacs.plugin.zsh 1.38 KB
Newer Older
Tristan Carel's avatar
Tristan Carel committed
1
2
# Emacs 23 daemon capability is a killing feature.
# One emacs process handles all your frames whether
Tristan Carel's avatar
Tristan Carel committed
3
# you use a frame opened in a terminal via a ssh connection or X frames
Tristan Carel's avatar
Tristan Carel committed
4
5
6
7
8
9
10
11
12
# 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.


13
14
15
16
17
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

Tristan Carel's avatar
Tristan Carel committed
18
    # same than M-x eval but from outside Emacs.
Tristan Carel's avatar
Tristan Carel committed
19
    alias eeval="$EDITOR --eval"
Tristan Carel's avatar
Tristan Carel committed
20
21
22
23
    # create a new X frame
    alias eframe='emacsclient --alternate-editor "" --create-frame'

    # to code all night long
24
25
    alias emasc=emacs
    alias emcas=emacs
Tristan Carel's avatar
Tristan Carel committed
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

    # jump to the directory of the current buffer
    function ecd {
        local cmd="(let ((buf-name (buffer-file-name (window-buffer))))
               (if buf-name
                 (file-name-directory buf-name)))"

        local dir=`$EDITOR --eval "$cmd" | tr -d \"`
        if [ -n "$dir" ] ;then
            cd "$dir"
        else
            echo "can not deduce current buffer filename." >/dev/stderr
            return 1
        fi
    }
41
fi
Tristan Carel's avatar
Tristan Carel committed
42

Tristan Carel's avatar
Tristan Carel committed
43

Tristan Carel's avatar
Tristan Carel committed
44
45
46
## Local Variables:
## mode: sh
## End: