Update Emacs / Bash monkey-patched functions
This commit is contained in:
		
							parent
							
								
									8cadd912a6
								
							
						
					
					
						commit
						c466358048
					
				
					 1 changed files with 23 additions and 22 deletions
				
			
		|  | @ -1,8 +1,15 @@ | |||
| #!/usr/bin/env zsh | ||||
| 
 | ||||
| # This file contains tooling that make terminal usage from within Emacs more enjoyable. Some of | ||||
| # these are conditionally defined functions that monkey patch CLI utils like vim and man and | ||||
| # dispatch to native Emacs utils that should function as analogous alternatives. | ||||
| 
 | ||||
| # While most of these conditional definitions could fall inside of one larger, if "${INSIDE_EMACS}" | ||||
| # block, to increase portability, smaller, redundant blocks are preferred. | ||||
| 
 | ||||
| 
 | ||||
| # Have zsh export variables for Emacs to track the cwd | ||||
| if [ -n "$INSIDE_EMACS" ]; then | ||||
| if [ -n "${INSIDE_EMACS}" ]; then | ||||
|   chpwd() { print -P "\033AnSiTc %d" } | ||||
|   print -P "\033AnSiTu %n" | ||||
|   print -P "\033AnSiTc %d" | ||||
|  | @ -10,36 +17,30 @@ fi | |||
| 
 | ||||
| 
 | ||||
| # Custom emacs pager support | ||||
| if [ -n "$INSIDE_EMACS" ]; then | ||||
| if [ -n "${INSIDE_EMACS}" ]; then | ||||
|     export PAGER="create-shell-pager.sh" | ||||
| else | ||||
|     export PAGER="less" | ||||
| fi | ||||
| 
 | ||||
| 
 | ||||
| # Edit commit messages, etc from ansi-term in emacs | ||||
| if [ -n "$INSIDE_EMACS" ]; then | ||||
| # For git primarily. Edit commit messages, etc from ansi-term in Emacs | ||||
| if [ -n "${INSIDE_EMACS}" ]; then | ||||
|     export EDITOR="edit-file-in-emacs.sh" | ||||
| else | ||||
|     export EDITOR="command vim" | ||||
| fi | ||||
| 
 | ||||
| 
 | ||||
| # Calls to vim from within ansi-term trigger emacs find-file | ||||
| vim () { | ||||
|     if [ -n "$INSIDE_EMACS" ]; then | ||||
| # Muscle-memory dies hard. Calls to vim from an Emacs terminal attempt to open vim from inside of | ||||
| # Emacs. This is a really bad UX, and hard to exit from. Instead of retraining muscle-memory, | ||||
| # dispatch to Emacs' file editing when vim is called from an Emacs terminal. | ||||
| if [ -n "${INSIDE_EMACS}" ]; then | ||||
|     function vim () { | ||||
|         emacsclient -e "(find-file-other-window \"$1\")" | ||||
|     else | ||||
|         command vim "$1" | ||||
|     fi | ||||
| } | ||||
|     } | ||||
| fi | ||||
| 
 | ||||
| 
 | ||||
| # Calls to man from within ansi-term trigger emacs man | ||||
| man () { | ||||
|     if [ -n "$INSIDE_EMACS" ]; then | ||||
| # Prefer Emac's built-in man util when called from an Emacs terminal | ||||
| if [ -n "${INSIDE_EMACS}" ]; then | ||||
|     function man () { | ||||
|         emacsclient -e  "(man \"$1\")" | ||||
|     else | ||||
|         command man "$1" | ||||
|     fi | ||||
| } | ||||
|     } | ||||
| fi | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue