From 1f870aa8921468a8a06f9672b1fe16b7ea05c404 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Thu, 15 Sep 2022 15:47:07 -0500 Subject: feat(zsh): add zsh-vi-mode plugin to improve zsh's vi mode --- wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh | 58 ++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) (limited to 'wsl/.local/share/zsh-wsl') diff --git a/wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh b/wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh index 70236cf..23bb567 100644 --- a/wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh +++ b/wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh @@ -13,9 +13,13 @@ export DISPLAY="$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}')":0 export BROWSER=wslview export XDG_RUNTIME_DIR=/tmp/xdg export GPG_TTY="$(tty)" +export SHELDON_PROFILE="wsl" -alias wsl=wsl.exe +alias wsl="/mnt/c/Windows/system32/wsl.exe" +alias powershell="/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe" +alias pwsh="/mnt/c/Program Files/PowerShell/7/pwsh.exe" alias ykman='/mnt/c/Program\ Files/Yubico/YubiKey\ Manager/ykman.exe' + alias pip2="DISPLAY= pip2" alias pip3="DISPLAY= pip3" alias pip3.7="DISPLAY= pip3.7" @@ -61,3 +65,55 @@ wsl_cmd_proxy() { winget() { wsl_cmd_proxy "winget.exe" "$@"; } scoop() { wsl_cmd_proxy "scoop" "$@"; } + +zvm_vi_yank () { + zvm_yank + printf %s "${CUTBUFFER}" | win32yank.exe -i + zvm_exit_visual_mode +} + +zvm_vi_put_after () { + local head= foot= + local content=$(win32yank.exe -o) + local offset=1 + if [[ ${content: -1} == $'\n' ]] + then + local pos=${CURSOR} + for ((; $pos<$#BUFFER; pos++)) do + if [[ ${BUFFER:$pos:1} == $'\n' ]] + then + pos=$pos+1 + break + fi + done + if zvm_is_empty_line + then + head=${BUFFER:0:$pos} + foot=${BUFFER:$pos} + else + head=${BUFFER:0:$pos} + foot=${BUFFER:$pos} + if [[ $pos == $#BUFFER ]] + then + content=$'\n'${content:0:-1} + pos=$pos+1 + fi + fi + offset=0 + BUFFER="${head}${content}${foot}" + CURSOR=$pos + else + if zvm_is_empty_line + then + head="${BUFFER:0:$((CURSOR-1))}" + foot="${BUFFER:$CURSOR}" + else + head="${BUFFER:0:$CURSOR}" + foot="${BUFFER:$((CURSOR+1))}" + fi + BUFFER="${head}${BUFFER:$CURSOR:1}${content}${foot}" + CURSOR=$CURSOR+$#content + fi + zvm_highlight clear + zvm_highlight custom $(($#head+$offset)) $(($#head+$#content+$offset)) +} -- cgit v1.2.3-70-g09d2