두 번의 키 입력으로 zsh에서 슬래시 또는 단어를 제거하는 방법은 무엇입니까?

두 번의 키 입력으로 zsh에서 슬래시 또는 단어를 제거하는 방법은 무엇입니까?

쿵쿵거리는 행동

bash방금 에서 마이그레이션했습니다 zsh. 에는 bash다음 줄이 있습니다 ~/.inputrc.

"\e\C-?": unix-filename-rubout

따라서 Alt+는 Backspace이전 슬래시를 다시 제거하므로 경로 편집에 유용합니다.

개별적으로 bash기본값은 Ctrl+ w 이전 삭제 입니다.공간, 이는 전체 매개변수를 제거하는 데 유용합니다(공백이 없다고 가정). 그러므로 약간 두 가지가 있습니다.다른각 키 조합으로 수행되는 작업입니다.

Zsh 동작

에서는 zsh+ 와 + 모두 동일한 작업을 수행합니다 Alt. 둘 다 이전 단어를 제거하지만 하이픈 연결을 너무 느슨하게 정의하여 이전 또는 를 제거합니다 . 와 유사한 동작을 만드는 방법이 있습니까?BackspaceCtrlw-_zshbash두 가지 독립적인 행동? 중요한 경우 이미 oh-my-zsh설치했습니다.

답변1

비슷한 질문이 여기에 요청되었습니다.zsh: 디렉터리 구분 기호에서 단어를 거꾸로 죽이는 것을 중지합니다.

그리고 작동하는 솔루션이 제공되면 다음 설정을 zshrc에 추가하십시오.

autoload -U select-word-style
select-word-style bash

답변2

편집: 질문 이후의 다음 Google 결과는 동일한 솔루션을 사용한 결과입니다.zsh: 영숫자가 아닌 문자에서 ALT+BACKSPACE를 중지합니다.

이 답변은 /nick FoHfreenode의 #zsh에서 제공되었습니다.

backward-kill-dir () {
    local WORDCHARS=${WORDCHARS/\/}
    zle backward-kill-word
    zle -f kill
}
zle -N backward-kill-dir
bindkey '^[^?' backward-kill-dir

ctrl+w이 방법으로 vim lingo에서 단어를 삭제하고 alt+bkspc단어를 삭제할 수 있습니다.

답변3

확장됨정크 정비공의 답변, 나는 것을 원하는

  • 기존 zsh 단축키( CtrlW, CtrlCtrl)는 zsh 기본값과 동일하게 작동합니다.
  • Alt바로가기 기반( AltW, AltAlt)은 유사하게 작동하지만 "더 세부적"입니다./

이것이 내가 지금 사용하고 있는 것입니다:

# Alt+Backspace
backward-kill-dir () {
    local WORDCHARS=${WORDCHARS/\/}
    zle backward-kill-word
    zle -f kill  # Ensures that after repeated backward-kill-dir, Ctrl+Y will restore all of them.
}
zle -N backward-kill-dir
bindkey '^[^?' backward-kill-dir


# Alt+Left
backward-word-dir () {
    local WORDCHARS=${WORDCHARS/\/}
    zle backward-word
}
zle -N backward-word-dir
bindkey "^[[1;3D" backward-word-dir

# Alt+Right
forward-word-dir () {
    local WORDCHARS=${WORDCHARS/\/}
    zle forward-word
}
zle -N forward-word-dir
bindkey "^[[1;3C" forward-word-dir

자세한 내용은 zle -f kill다음을 참조하세요.Zsh - 맞춤 위젯에 텍스트를 붙여넣으면 마지막 단어에만 작동합니다. 이 문제를 고칠 수 있나요?

답변4

bindkey '^[^?' vi-backward-kill-word


내가 아는 한, 그것은 Meta-BackSpace동일하게 작동합니다@thomas-dickey가 제안한 답변, 그리고 두 줄 대신 한 줄로 ;-). 그러나 이오직Meta-BS에 영향을 미칩니다. 메타(왼쪽/오른쪽) 탐색의 완전한 bash 유사 동작을 찾고 있다면 이것이 select-word-style올바른 접근 방식입니다.

(각주:select-word-style-물건문서화되어 있지만 man zshcontrib거의 이해할 수 없습니다. vi-backward-kill-word에 녹음되었습니다 man zshzle. )

관련 정보