diff options
author | Aaron LI <aaronly.me@gmail.com> | 2016-04-30 15:13:55 +0800 |
---|---|---|
committer | Aaron LI <aaronly.me@gmail.com> | 2016-04-30 15:13:55 +0800 |
commit | c381c0c531a78ff4b1a1907c10da4ff54a112f0a (patch) | |
tree | b194beb791c36b31fd1f3333d2f20f07462fe516 /_zsh/80-emacs.zsh | |
parent | 3d6f015f851398d0ce1e509cd6fd88e74c7626f6 (diff) | |
download | dotfiles-c381c0c531a78ff4b1a1907c10da4ff54a112f0a.tar.bz2 |
_zsh: simplify initialization; order by perfix
Diffstat (limited to '_zsh/80-emacs.zsh')
-rw-r--r-- | _zsh/80-emacs.zsh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/_zsh/80-emacs.zsh b/_zsh/80-emacs.zsh new file mode 100644 index 0000000..501ddb2 --- /dev/null +++ b/_zsh/80-emacs.zsh @@ -0,0 +1,37 @@ +# +# zsh/emacs.zsh +# +# Credits: +# https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/emacs +# +# 2016-02-21 +# + +function _emacsclient() { + # Get list of available X windows. + X=`emacsclient --alternate-editor '' --eval '(x-display-list)' 2>/dev/null` + + if [ -z "$X" ] || [ "$X" = "nil" ]; then + # Create one if there is no X window yet. + command emacsclient --alternate-editor "" --create-frame "$@" + else + # Prevent creating another X frame if there is at least one present. + command emacsclient --alternate-editor "" "$@" + fi +} + +alias emacs='_emacsclient -t' +alias e=emacs +# Same as 'M-x eval' but outside of Emacs +alias eeval='_emacsclient --eval' +# Create a new X frame +alias eframe='_emacsclient --create-frame --no-wait' + +# Write to stdout the path to the file opened in the current buffer +function efile() { + local cmd="(buffer-file-name (window-buffer))" + _emacsclient --eval "$cmd" | tr -d '"' +} + + +# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=zsh: # |