Get zshell to work with vterm
Some recent apps need vterm instead of eat.
This commit is contained in:
		
							parent
							
								
									e81a0d8692
								
							
						
					
					
						commit
						f5f374274e
					
				
					 1 changed files with 50 additions and 2 deletions
				
			
		
							
								
								
									
										52
									
								
								zshell.org
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								zshell.org
									
									
									
									
									
								
							| 
						 | 
					@ -328,11 +328,59 @@ With these variables defined, we can create simple aliases:
 | 
				
			||||||
  alias eee="$EMACS --create-frame --no-wait"
 | 
					  alias eee="$EMACS --create-frame --no-wait"
 | 
				
			||||||
#+END_SRC
 | 
					#+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					** Vterm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To work with [[https://github.com/akermu/emacs-libvterm][VTerm in Emacs]], we need to create this function:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+BEGIN_SRC zsh
 | 
				
			||||||
 | 
					  vterm_printf() {
 | 
				
			||||||
 | 
					      if [ -n "$TMUX" ] \
 | 
				
			||||||
 | 
					          && { [ "${TERM%%-*}" = "tmux" ] \
 | 
				
			||||||
 | 
					              || [ "${TERM%%-*}" = "screen" ]; }
 | 
				
			||||||
 | 
					      then
 | 
				
			||||||
 | 
					          # Tell tmux to pass the escape sequences through
 | 
				
			||||||
 | 
					          printf "\ePtmux;\e\e]%s\007\e\\" "$1"
 | 
				
			||||||
 | 
					      elif [ "${TERM%%-*}" = "screen" ]; then
 | 
				
			||||||
 | 
					          # GNU screen (screen, screen-256color, screen-256color-bce)
 | 
				
			||||||
 | 
					          printf "\eP\e]%s\007\e\\" "$1"
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					          printf "\e]%s\e\\" "$1"
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					#+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This allows us to execute Emacs commands:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+BEGIN_SRC zsh
 | 
				
			||||||
 | 
					  vterm_cmd() {
 | 
				
			||||||
 | 
					      local vterm_elisp
 | 
				
			||||||
 | 
					      vterm_elisp=""
 | 
				
			||||||
 | 
					      while [ $# -gt 0 ]; do
 | 
				
			||||||
 | 
					          vterm_elisp="$vterm_elisp""$(printf '"%s" ' "$(printf "%s" "$1" | sed -e 's|\\|\\\\|g' -e 's|"|\\"|g')")"
 | 
				
			||||||
 | 
					          shift
 | 
				
			||||||
 | 
					      done
 | 
				
			||||||
 | 
					      vterm_printf "51;E$vterm_elisp"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					#+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For instance:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+BEGIN_SRC zsh
 | 
				
			||||||
 | 
					  if [[ "$INSIDE_EMACS" = 'vterm' ]]
 | 
				
			||||||
 | 
					  then
 | 
				
			||||||
 | 
					      alias clear='vterm_printf "51;Evterm-clear-scrollback";tput clear'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      vim() {
 | 
				
			||||||
 | 
					          vterm_cmd find-file "$(realpath "${@:-.}")"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					#+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Aliases
 | 
					* Aliases
 | 
				
			||||||
Assuming we’ve installed [[https://github.com/lsd-rs/lsd][lsd]], let’s make an alias for it:
 | 
					Assuming we’ve installed [[https://github.com/lsd-rs/lsd][lsd]], let’s make an alias for it:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#+BEGIN_SRC zsh
 | 
					#+BEGIN_SRC zsh
 | 
				
			||||||
  if whence lsd
 | 
					  if whence lsd >/dev/null
 | 
				
			||||||
  then
 | 
					  then
 | 
				
			||||||
    alias ls=lsd
 | 
					    alias ls=lsd
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
| 
						 | 
					@ -341,7 +389,7 @@ Assuming we’ve installed [[https://github.com/lsd-rs/lsd][lsd]], let’s make
 | 
				
			||||||
The [[https://github.com/jtdaugherty/ccat][ccat project]] (like bat) adds syntax coloring to text files. For big files, it certainly slows down the output, and I’m wondering if I want these aliases.
 | 
					The [[https://github.com/jtdaugherty/ccat][ccat project]] (like bat) adds syntax coloring to text files. For big files, it certainly slows down the output, and I’m wondering if I want these aliases.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#+BEGIN_SRC zsh
 | 
					#+BEGIN_SRC zsh
 | 
				
			||||||
  if whence cless
 | 
					  if whence cless >/dev/null
 | 
				
			||||||
  then
 | 
					  then
 | 
				
			||||||
    alias less=cless
 | 
					    alias less=cless
 | 
				
			||||||
    alias cat=ccat
 | 
					    alias cat=ccat
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue