![zsh에 복사하여 붙여넣기](https://linux55.com/image/82381/zsh%EC%97%90%20%EB%B3%B5%EC%82%AC%ED%95%98%EC%97%AC%20%EB%B6%99%EC%97%AC%EB%84%A3%EA%B8%B0.png)
나는 zsh의 내용을 복사하여 시스템 클립보드에 붙여넣기 위해 zsh용으로 이 작은 스크립트를 직접 만들었습니다(기본적으로 여기에서 모든 것을 가져옵니다:zsh emacs처럼 복사하여 붙여넣기)
x-yank() {
zle copy-region-as-kill
print -rn -- $CUTBUFFER | pbcopy
}
zle -N x-yank
x-cut() {
zle kill-region
print -rn -- $CUTBUFFER | pbcopy
}
zle -N x-cut
x-paste() {
CUTBUFFER=$(pbpaste)
zle yank
}
zle -N x-paste
bindkey -M vicmd "y" x-yank
bindkey -M vicmd "Y" x-cut
bindkey -M vicmd "p" x-paste
그러나 해결할 수 없는 몇 가지 작은 문제가 있습니다.
- 붙여넣으면 커서 아래의 현재 문자가 삭제됩니다. 저는 Vim 방식을 선호하고 그런 다음 삽입합니다.
- 복사해도 선택 항목이 삭제되지 않습니다.
어디서부터 시작해야 할지 아이디어가 있나요?
답변1
좋아, 알아냈습니다. 다양한 버퍼를 직접 조작할 수 있습니다.
x-paste() {
PASTE=$(pbpaste)
LBUFFER="$LBUFFER${RBUFFER:0:1}"
RBUFFER="$PASTE${RBUFFER:1:${#RBUFFER}}"
}
zle -N x-paste
bindkey -M vicmd "p" x-paste