diff options
author | Marvin Borner | 2020-03-16 23:33:42 +0100 |
---|---|---|
committer | Marvin Borner | 2020-03-16 23:33:42 +0100 |
commit | 0e9ddbb0bf0cd34500155ea4b03de2e2a38d8ab2 (patch) | |
tree | 719da1c7fe5dabb872fe9ff1582c39b55ccd488e /.oh-my-zsh/plugins/emacs | |
parent | e5d38956336ab1be954bdbd12808c5f98f8bd925 (diff) |
Well I'm using Arch again
Diffstat (limited to '.oh-my-zsh/plugins/emacs')
-rw-r--r-- | .oh-my-zsh/plugins/emacs/README.md | 30 | ||||
-rw-r--r-- | .oh-my-zsh/plugins/emacs/emacs.plugin.zsh | 55 | ||||
-rwxr-xr-x | .oh-my-zsh/plugins/emacs/emacsclient.sh | 28 |
3 files changed, 0 insertions, 113 deletions
diff --git a/.oh-my-zsh/plugins/emacs/README.md b/.oh-my-zsh/plugins/emacs/README.md deleted file mode 100644 index c8e33b5..0000000 --- a/.oh-my-zsh/plugins/emacs/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Emacs plugin - -This plugin utilizes the Emacs daemon capability, allowing the user to quickly open frames, whether they are opened in a terminal via a ssh connection, or X frames opened on the same host. The plugin also provides some aliases for such operations. - -- 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. - -**NOTE:** requires Emacs 24 and newer. - -To use it, add emacs to the plugins array in your zshrc file: - -```zsh -plugins=(... emacs) -``` - -## Aliases - -The plugin uses a custom launcher (which we'll call here `$EMACS_LAUNCHER`) that is just a wrapper around [`emacsclient`](https://www.emacswiki.org/emacs/EmacsClient). - -| Alias | Command | Description | -|--------|----------------------------------------------------|----------------------------------------------------------------| -| emacs | `$EMACS_LAUNCHER --no-wait` | Opens a temporary emacsclient frame | -| e | `emacs` | Same as emacs alias | -| te | `$EMACS_LAUNCHER -nw` | Open terminal emacsclient | -| eeval | `$EMACS_LAUNCHER --eval` | Same as `M-x eval` but from outside Emacs | -| eframe | `emacsclient --alternate-editor "" --create-frame` | Create new X frame | -| efile | - | Print the path to the file open in the current buffer | -| ecd | - | Print the directory of the file open in the the current buffer | diff --git a/.oh-my-zsh/plugins/emacs/emacs.plugin.zsh b/.oh-my-zsh/plugins/emacs/emacs.plugin.zsh deleted file mode 100644 index 934c8d6..0000000 --- a/.oh-my-zsh/plugins/emacs/emacs.plugin.zsh +++ /dev/null @@ -1,55 +0,0 @@ -# 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" emacsclient 24 2>/dev/null ; then - export EMACS_PLUGIN_LAUNCHER="$ZSH/plugins/emacs/emacsclient.sh" - - # set EDITOR if not already defined. - export EDITOR="${EDITOR:-${EMACS_PLUGIN_LAUNCHER}}" - - alias emacs="$EMACS_PLUGIN_LAUNCHER -t" - alias e=emacs - # open terminal emacsclient - alias te="$EMACS_PLUGIN_LAUNCHER -nw" - - # same than M-x eval but from outside Emacs. - alias eeval="$EMACS_PLUGIN_LAUNCHER --eval" - # create a new X frame - alias eframe='emacsclient --alternate-editor "" --create-frame' - - - # Write to standard output the path to the file - # opened in the current buffer. - function efile { - local cmd="(buffer-file-name (window-buffer))" - "$EMACS_PLUGIN_LAUNCHER" --eval "$cmd" | tr -d \" - } - - # Write to standard output the directory of the file - # opened in the 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="$($EMACS_PLUGIN_LAUNCHER --eval $cmd | tr -d \")" - if [ -n "$dir" ] ;then - echo "$dir" - else - echo "can not deduce current buffer filename." >/dev/stderr - return 1 - fi - } -fi - -## Local Variables: -## mode: sh -## End: diff --git a/.oh-my-zsh/plugins/emacs/emacsclient.sh b/.oh-my-zsh/plugins/emacs/emacsclient.sh deleted file mode 100755 index 26b28d4..0000000 --- a/.oh-my-zsh/plugins/emacs/emacsclient.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -_emacsfun() -{ - # get list of emacs frames. - frameslist=`emacsclient --alternate-editor '' --eval '(frame-list)' 2>/dev/null | egrep -o '(frame)+'` - - if [ "$(echo "$frameslist" | sed -n '$=')" -ge 2 ] ;then - # prevent creating another X frame if there is at least one present. - emacsclient --alternate-editor "" "$@" - else - # Create one if there is no X window yet. - emacsclient --alternate-editor "" --create-frame "$@" - fi -} - - -# adopted from https://github.com/davidshepherd7/emacs-read-stdin/blob/master/emacs-read-stdin.sh -# If the second argument is - then write stdin to a tempfile and open the -# tempfile. (first argument will be `--no-wait` passed in by the plugin.zsh) -if [ "$#" -ge "2" -a "$2" = "-" ] -then - tempfile="$(mktemp emacs-stdin-$USER.XXXXXXX --tmpdir)" - cat - > "$tempfile" - _emacsfun --no-wait $tempfile -else - _emacsfun "$@" -fi |