쉘 (bash)에있을 때-Ctrl-Backspace를 바인딩하여 "단어 삭제"를 원합니다. 가능합니까?
편집 :
konsoleKDE에서 터미널을 사용 하고 있습니다.
Ctrl-w콘솔에서 "이전 단어 삭제"로 익숙 했으며 Eclipse 또는 Chrome에서도 본능적으로 수행하여 탭 닫기 / 현재 파일 닫기를 의미합니다. 꽤 짜증나.
쉘 (bash)에있을 때-Ctrl-Backspace를 바인딩하여 "단어 삭제"를 원합니다. 가능합니까?
편집 :
konsoleKDE에서 터미널을 사용 하고 있습니다.
Ctrl-w콘솔에서 "이전 단어 삭제"로 익숙 했으며 Eclipse 또는 Chrome에서도 본능적으로 수행하여 탭 닫기 / 현재 파일 닫기를 의미합니다. 꽤 짜증나.
답변:
대부분의 터미널에 이미 매핑 된 Alt+ Backspace또는 Ctrl+ 만 사용하는 것이 어떻습니까? W콘솔에 대해 확실하지 않습니다. Xmodmap (man xmodmap)을 사용하여 다른 사용자 정의 키도 다시 매핑 할 수 있습니다. 역설적으로, xmodmap은 터미널이 매핑을 무시하기 때문에 백 스페이스를 다시 매핑 할 수 없지만 대부분의 키와 잘 작동합니다 ...
구글을 통해이 스레드를 찾았지만 대답은 듣고 싶지 않았습니다. 그래서 나는 놀았습니다 :
내 터미널에서 일반 백 스페이스는을 보내고 ^Hctrl + backspace는을 보냅니다 ^?. 따라서 ^?단어를 삭제하기 위해 리 바인딩하는 것이 간단해야합니다. 기본적으로 Ctrl + W를 통해 사용할 수 있습니다.
$ bind -P | grep 'C-w'
unix-word-rubout can be found on "\C-w".
따라서 이것은 작동해야합니다.
$ bind '"\C-?":unix-word-rubout'
그러나 설명 할 수있는 사람은 없습니까?
$ bind '"\C-?":"^W"'
(가) 여기서 ^W리터 / 원료 인 ^W(프레스 CTRL + V 다음 Ctrl + W가 보이게하기 위해).
이 좋은 답은 여기에 있습니다, 그러나 나는 그때부터 매핑을 추가, 설정 -> 편집 현재 프로파일 -> 키보드 -> 편집과 Konsole을 그것을 해결 Backspace+Control에 \x17. (을 사용하여 Ctrl-w의 ASCII 코드를 찾았습니다 showkey --ascii.)
showkey. 따라서 ALT+D커서 앞에있는 단어를 삭제 하면에 해당한다는 것을 알았 습니다 \x1b\x64.
\x1b\x7f입니다.
그것은 bash가 보는 것에 달려 있습니다. 정기적 인 터미널 상호 작용에서 bash는 누른 키 수정자를 보지 않고 결과 문자 만 표시합니다. 백 스페이스는 예를 들어 control-H와 이미 동일합니다. 시프트 또는 컨트롤을 누르고 있으면 아무런 차이가 없습니다.
그러나 터미널 응용 프로그램 (xterm? cmd? 터미널? Putty? 운영 체제에 따라 다름)은 키 누르기를 볼 수 있으며 제어 백 스페이스 키 조합을 배쉬가 백 스페이스와 구별 할 수있는 것으로 매핑 할 수 있습니다.
key Backspace-Shift-Control : "\x7f"및 key Backspace-Shift+Control : "\E[9;3~"제목 줄을 변경하는 동안 keyboard "Xfree4 Modlist"예를 들어 제목 줄을 변경하십시오 . 그런 다음 "\e[9;3~": backward-kill-word"~ / .inputrc에 추가 할 수 있습니다
이 시도:
bind '"\C-_":backward-kill-word'
선택적으로 ~ / .inputrc에 다음을 추가하여 영구적으로 만듭니다.
"\C-_": backward-kill-word
쿠분투 14.04의 bash 4.3.11에서 작동
GNU bash, version 4.4.12(3)-release (x86_64-unknown-cygwin)입니다.
대부분의 터미널에서 CTRL + W는 이미 단어를 뒤로 삭제해야합니다. 이것은 xterm과 함께 작동하며 konsole과 함께 작동하는 것 같습니다. CTRL + W는 텍스트 기반 프로그램의 표준 키 바인딩으로 삽입 모드, emacs 및 모든 쉘에서 vim과 함께 작동합니다.
Ctrl+wimho에 익숙해 져야합니다.