# 复制选区到 wl-clipboard (不删除)
wl-copy-region-as-kill() {
zle copy-region-as-kill
print -rn -- "$CUTBUFFER" | wl-copy --trim-newline
}
zle -N wl-copy-region-as-kill
# 剪切选区到 wl-clipboard
wl-kill-region() {
zle kill-region
print -rn -- "$CUTBUFFER" | wl-copy --trim-newline
}
zle -N wl-kill-region
# 剪切到行尾
wl-kill-line() {
zle kill-line
print -rn -- "$CUTBUFFER" | wl-copy --trim-newline
}
zle -N wl-kill-line
# 后向删除单词
wl-backward-kill-word() {
zle backward-kill-word
print -rn -- "$CUTBUFFER" | wl-copy --trim-newline
}
zle -N wl-backward-kill-word
# 从 wl-clipboard 粘贴
wl-yank() {
CUTBUFFER=$(wl-paste --no-newline)
zle yank
}
zle -N wl-yank
# 绑定 Emacs 风格快捷键
bindkey '^[w' wl-copy-region-as-kill # Alt+W: 复制
bindkey '^W' wl-kill-region # Ctrl+W: 剪切
bindkey '^K' wl-kill-line # Ctrl+K: 剪切到行尾
bindkey '^Y' wl-yank # Ctrl+Y: 粘贴
bindkey '^[^?' wl-backward-kill-word # Alt+Backspace: 删除单词
这个是为了让我更方便地使用C-y ,盲打的时候按C-S-v 实在难为我。而且原本的C-space也没办法使用系统剪切板,改完之后复制剪切也顺手很多。不过我这个用法仅限在使用wl-clipboard。
