Browse Source

feat(vi-mode): add option to disable clipboard (#12037)

Þórhallur Sverrisson 5 months ago
parent
commit
e0213342d1
2 changed files with 15 additions and 11 deletions
  1. 2 0
      plugins/vi-mode/README.md
  2. 13 11
      plugins/vi-mode/vi-mode.plugin.zsh

+ 2 - 0
plugins/vi-mode/README.md

@@ -37,6 +37,8 @@ plugins=(... vi-mode)
 - `INSERT_MODE_INDICATOR`: controls the string displayed when the shell is in insert mode.
   See [Mode indicators](#mode-indicators) for details.
 
+- `VI_MODE_DISABLE_CLIPBOARD`: If set, disables clipboard integration on yank/paste
+
 ## Mode indicators
 
 *Normal mode* is indicated with a red `<<<` mark at the right prompt, when it

+ 13 - 11
plugins/vi-mode/vi-mode.plugin.zsh

@@ -147,17 +147,19 @@ function wrap_clipboard_widgets() {
   done
 }
 
-wrap_clipboard_widgets copy \
-    vi-yank vi-yank-eol vi-yank-whole-line \
-    vi-change vi-change-eol vi-change-whole-line \
-    vi-kill-line vi-kill-eol vi-backward-kill-word \
-    vi-delete vi-delete-char vi-backward-delete-char
-
-wrap_clipboard_widgets paste \
-    vi-put-{before,after} \
-    put-replace-selection
-
-unfunction wrap_clipboard_widgets
+if [[ -z "${VI_MODE_DISABLE_CLIPBOARD:-}" ]]; then
+  wrap_clipboard_widgets copy \
+      vi-yank vi-yank-eol vi-yank-whole-line \
+      vi-change vi-change-eol vi-change-whole-line \
+      vi-kill-line vi-kill-eol vi-backward-kill-word \
+      vi-delete vi-delete-char vi-backward-delete-char
+
+  wrap_clipboard_widgets paste \
+      vi-put-{before,after} \
+      put-replace-selection
+
+  unfunction wrap_clipboard_widgets
+fi
 
 # if mode indicator wasn't setup by theme, define default, we'll leave INSERT_MODE_INDICATOR empty by default
 if [[ -z "$MODE_INDICATOR" ]]; then