쿵쿵거리는 행동
bash
방금 에서 마이그레이션했습니다 zsh
. 에는 bash
다음 줄이 있습니다 ~/.inputrc
.
"\e\C-?": unix-filename-rubout
따라서 Alt+는 Backspace이전 슬래시를 다시 제거하므로 경로 편집에 유용합니다.
개별적으로 bash
기본값은 Ctrl+ w 이전 삭제 입니다.공간, 이는 전체 매개변수를 제거하는 데 유용합니다(공백이 없다고 가정). 그러므로 약간 두 가지가 있습니다.다른각 키 조합으로 수행되는 작업입니다.
Zsh 동작
에서는 zsh
+ 와 + 모두 동일한 작업을 수행합니다 Alt. 둘 다 이전 단어를 제거하지만 하이픈 연결을 너무 느슨하게 정의하여 이전 또는 를 제거합니다 . 와 유사한 동작을 만드는 방법이 있습니까?BackspaceCtrlw-
_
zsh
bash
두 가지 독립적인 행동? 중요한 경우 이미 oh-my-zsh
설치했습니다.
답변1
비슷한 질문이 여기에 요청되었습니다.zsh: 디렉터리 구분 기호에서 단어를 거꾸로 죽이는 것을 중지합니다.
그리고 작동하는 솔루션이 제공되면 다음 설정을 zshrc에 추가하십시오.
autoload -U select-word-style
select-word-style bash
답변2
편집: 질문 이후의 다음 Google 결과는 동일한 솔루션을 사용한 결과입니다.zsh: 영숫자가 아닌 문자에서 ALT+BACKSPACE를 중지합니다.
이 답변은 /nick FoH
freenode의 #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, Ctrl←및 Ctrl→)는 zsh 기본값과 동일하게 작동합니다.
- Alt바로가기 기반( AltW, Alt←및 Alt→)은 유사하게 작동하지만 "더 세부적"입니다.
/
이것이 내가 지금 사용하고 있는 것입니다:
# 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
. )