터미널에서 "/"를 "/"로 제거하는 방법은 무엇입니까?

터미널에서 "/"를 "/"로 제거하는 방법은 무엇입니까?

저는 Kitty 에뮬레이터와 bash 쉘을 사용합니다.

알고 있어요 Ctrl+ w삭제할 수 있어요한 단어터미널에서 (예: Ctrl+ Backspace) 하지만 다음과 같은 것이 있다면 어떨까요?

sh /home/user/dir1/dir2/file.sh

그냥 삭제하고 싶은데요 file.sh?

이래서 Ctrl+로 삭제 가 안되네요w전체 줄이 삭제됩니다.그리고 수동으로 삭제하고 싶지 않습니다.

하나의 경로 요소만 제거하는 방법에 대한 제안이 있으십니까?

답변1

제가 올바르게 이해했다면 귀하는 bash를 사용하고 있으며 기본 Emacs 스타일로 편집하고 있는 것입니다. 그 다음에Emacs 치트 시트도움이 될 수 있습니다. Alt+Backspace(backward-kill-word)를 수행하면 마지막 단어의 시작 부분까지 다시 삭제할 수 있습니다.

답변2

bash라인 편집기로 사용되는 애플리케이션 및 기타 애플리케이션 에서 tty 라인 규칙 설정 readline에 바인딩된 모든 문자 ( )werase출력 참조 문자를 다른 위젯에 바인딩하려는 시도는 무시됩니다(AFAICT). 그것에 묶여 있습니다.stty -aunix-word-ruboutwerase

대부분의 시스템에서는 기본 tty 설정 werase으로 되어 있습니다 .^W

^W따라서 readline의 다른 내용에 다시 바인딩하려면 먼저 tty 설정을 변경해야 합니다:

stty werase '^O'

werase다음 중 하나 에 바인딩 ^O:

stty werase ''

완전히 비활성화하십시오.

그러면 다음을 수행할 수 있습니다.

bind '"\C-w": backward-kill-word'

또는 응용 "\C-w": backward-kill-word프로그램에 추가하여 단지 .~/.inputrcreadlinebash

^W는 원하는 대로 단어를 제거합니다.성격밑줄도 아닌 일련의 문자나 숫자로 정의됩니다.

그러나 이는 자체 줄 편집기가 없는 응용 프로그램에서 단어를 삭제하기 위해 ^W를 사용할 수 없음을 의미합니다.

또는 완전히 구성 가능한 모든 텍스트 이동/제거 위젯을 zsh대신 사용할 수 있습니다 .bash

아니면 이미@AndreBeaud가 언급됨기본적으로 readline 의 emacs 모드에 바인딩된 Alt+ Backspace(보통 전송됨 ^[^H, 후자는 in)를 사용합니다 .^[^?kittybackward-kill-word

답변3

unix-filename-rubout.inputrc에 바인딩 설정

"\C-b":unix-filename-rubout

이 방법은 CTRL B슬래시나 공백이 나올 때까지 뒤로 삭제하는 것으로 매핑됩니다.

경로에 밑줄이 있으면 백슬래시까지 제거되지 않기 ALT BACKSPACE때문에 이것이 더 나은 솔루션입니다 .ALT BACKSPACE

밑줄은 단어 경계로 처리됩니다.

물론 다른 키보드 단축키를 선택할 수도 있습니다.

답변4

터미널의 키보드 텍스트 단축키

이것이 도움이 될 수 있습니다. "도움말, 콘텐츠, 고급 설정, 키보드 단축키"로 이동하여 터미널에서 더 많은 단축키를 찾을 수 있습니다.

관련 정보