명령줄(bash 및 zsh)에서 단어를 뒤로 삭제하는 방법은 무엇입니까?

명령줄(bash 및 zsh)에서 단어를 뒤로 삭제하는 방법은 무엇입니까?

명령줄에서 단어를 거꾸로 삭제하는 방법은 무엇입니까? 나는 Ctrl+를 사용하여 마지막 "단어"를 제거하는 일부 편집자에 익숙해졌으며 Backspace명령줄에서도 해당 기능을 사용할 수 있기를 바랍니다.

저는 현재 Bash를 사용하고 있으며 단어를 뒤로 건너뛰고 앞으로 단어를 삭제할 수 있지만 오히려 이것을 바로 가기로 사용하거나 Ctrl+ 로 이벤트를 사용하고 싶습니다 Backspace.

이것이 어떻게 달성될 수 있습니까?

답변1

Ctrl+ W는 표준 "kill word"(일명 werase)입니다. Ctrl+ U전체 라인을 종료합니다( kill).

를 사용하여 변경할 수 있습니다 stty.

-bash-4.2$ stty -a
speed 38400 baud; 24 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
        -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
        -extproc -xcase
iflags: -istrip icrnl -inlcr -igncr -iuclc ixon -ixoff ixany imaxbel
        -ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -ocrnl -onocr -onlret -olcuc oxtabs -onoeot
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
        eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
        min = 1; quit = ^\; reprint = ^R; start = ^Q; status = <undef>;
        stop = ^S; susp = ^Z; time = 0; werase = ^W;
-bash-4.2$ stty werase ^p
-bash-4.2$ stty kill ^a
-bash-4.2$

실제 제어 문자를 줄에 놓을 필요는 없으며 stty배치를 이해한 ^다음 제어로 칠 문자를 이해하십시오.

Ctrl그런 다음 +를 누르면 P해당 줄에서 단어가 제거됩니다. Ctrl+를 클릭하면 A전체 행이 삭제됩니다.

답변2

Alt+ Backspacebash와 zsh에서 작동합니다.

답변3

를 사용하여 이 작업을 수행할 수도 있습니다 CtrlW.

또 다른 옵션은 자신만의 바로가기를 설정하는 것이지만 이는 사용하는 터미널 에뮬레이터에 따라 다릅니다. xterm다른 경우 에는 rxvt다음 행을 파일에 추가하십시오 ~/.inputrc(파일이 없으면 파일을 작성하십시오).

## rxvt, xterm
"\b":backward-kill-word

gnome-terminal그리고 그 ilk는 AltBackspace기본적으로 가지고 있는 것 같지만확실히readline()그것을 얻으려면 패치가 필요합니다 CtrlBackspace.

또한보십시오:

답변4

놀랍게도 macOS esc에서도 delete작동합니다.

또한,iTerm2, 기본값을 업데이트할 수 있습니다.윤곽:

Keys > Key Mapping > Presets > Natural Text Editing

관련 정보