summary refs log tree commit diff
path: root/pkgs/shells/zsh/zsh-clipboard/clipboard.plugin.zsh
blob: f1f190ec70c339b51a671444a7af7320e91cd63a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
_cb-yank() {
  AA=$(clippaste 2>/dev/null) && CUTBUFFER="$AA"
  zle yank
}
_cb-kill-line() {
  zle kill-line
  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
}
_cb-kill-whole-line() {
  zle kill-whole-line
  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
}
_cb-kill-word() {
  zle kill-word
  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
}
_cb-backward-kill-word() {
  zle backward-kill-word
  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
}
_cb-copy-region-as-kill() {
  ## https://unix.stackexchange.com/questions/19947/
  zle copy-region-as-kill
  zle set-mark-command -n -1
  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
}

zle -N _cb-yank
zle -N _cb-kill-line
zle -N _cb-kill-whole-line
zle -N _cb-kill-word
zle -N _cb-backward-kill-word
zle -N _cb-copy-region-as-kill

bindkey '^y'   _cb-yank
bindkey '^k'   _cb-kill-line
bindkey '^u'   _cb-kill-whole-line
bindkey '\ed'  _cb-kill-word
bindkey '\e^?' _cb-backward-kill-word
bindkey '\ew'  _cb-copy-region-as-kill