Diff
1diff --git a/plugins/vi-mode/README.md b/plugins/vi-mode/README.md
2index 821c12adbc5b63191db421526ed3b8e130a8ab88..84ba301052b858463293c8d06933e3942c2dead5 100644
3--- a/plugins/vi-mode/README.md
4+++ b/plugins/vi-mode/README.md
5@@ -37,6 +37,8 @@ plugins=(... vi-mode)
6 - `INSERT_MODE_INDICATOR`: controls the string displayed when the shell is in insert mode.
7 See [Mode indicators](#mode-indicators) for details.
8
9+- `VI_MODE_DISABLE_CLIPBOARD`: If set, disables clipboard integration on yank/paste
10+
11 ## Mode indicators
12
13 *Normal mode* is indicated with a red `<<<` mark at the right prompt, when it
14diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh
15index 8fefaf86c6756922ea6762f369f90a078e24b2fe..5c104f7bb5d240ecbac93daf9ea97376c056e152 100644
16--- a/plugins/vi-mode/vi-mode.plugin.zsh
17+++ b/plugins/vi-mode/vi-mode.plugin.zsh
18@@ -147,17 +147,19 @@ function wrap_clipboard_widgets() {
19 done
20 }
21
22-wrap_clipboard_widgets copy \
23- vi-yank vi-yank-eol vi-yank-whole-line \
24- vi-change vi-change-eol vi-change-whole-line \
25- vi-kill-line vi-kill-eol vi-backward-kill-word \
26- vi-delete vi-delete-char vi-backward-delete-char
27-
28-wrap_clipboard_widgets paste \
29- vi-put-{before,after} \
30- put-replace-selection
31-
32-unfunction wrap_clipboard_widgets
33+if [[ -z "${VI_MODE_DISABLE_CLIPBOARD:-}" ]]; then
34+ wrap_clipboard_widgets copy \
35+ vi-yank vi-yank-eol vi-yank-whole-line \
36+ vi-change vi-change-eol vi-change-whole-line \
37+ vi-kill-line vi-kill-eol vi-backward-kill-word \
38+ vi-delete vi-delete-char vi-backward-delete-char
39+
40+ wrap_clipboard_widgets paste \
41+ vi-put-{before,after} \
42+ put-replace-selection
43+
44+ unfunction wrap_clipboard_widgets
45+fi
46
47 # if mode indicator wasn't setup by theme, define default, we'll leave INSERT_MODE_INDICATOR empty by default
48 if [[ -z "$MODE_INDICATOR" ]]; then