分享个好用的zsh按键绑定

# 复制选区到 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。

6 个赞

大赞,忍了好久了,国内太忙一直懒得fix,感谢楼主