Fix zsh config inclusion
This commit is contained in:
		
							
								
								
									
										30
									
								
								zsh/.oh-my-zsh_old/plugins/emacs/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								zsh/.oh-my-zsh_old/plugins/emacs/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| # 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 | | ||||
							
								
								
									
										55
									
								
								zsh/.oh-my-zsh_old/plugins/emacs/emacs.plugin.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								zsh/.oh-my-zsh_old/plugins/emacs/emacs.plugin.zsh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| # 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 --no-wait" | ||||
|     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: | ||||
							
								
								
									
										29
									
								
								zsh/.oh-my-zsh_old/plugins/emacs/emacsclient.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										29
									
								
								zsh/.oh-my-zsh_old/plugins/emacs/emacsclient.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,29 @@ | ||||
| #!/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 --tmpdir emacs-stdin-$USER.XXXXXXX 2>/dev/null \ | ||||
|                 || mktemp -t emacs-stdin-$USER)" # support BSD mktemp | ||||
|     cat - > "$tempfile" | ||||
|     _emacsfun --no-wait $tempfile | ||||
| else | ||||
|     _emacsfun "$@" | ||||
| fi | ||||
		Reference in New Issue
	
	Block a user