이전 슬래시까지 배쉬 리드 라인 삭제


15

bash emacs 모드에서 이전 슬래시 문자까지 삭제할 수 있습니까? 예를 들어 명령을 입력 하고을 cp /usr/local/bin/reallylongincorrectfolder /home/myname/reallylong_and_correct_path삭제하려는 reallylongincorrectfolder경우 바로 가기가 있습니까? 이것은 bash에서 나에게 매우 코맨 시나리오입니다. dF<char>vi 와 같은 것 ?

답변:


9
bind -P |grep unix-filename-rubout

예를 들어 키 바인딩을 테스트하려면 Ctrl- b:

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

영구적으로 사용하려면 다음을 추가하십시오. ~/.inputrc


2
에 추가하려면 ~/.inputrc해당 파일에 다음과 같은 행 을 추가하십시오 "\C-b": unix-filename-rubout. 효과를 보려면 새 bash 쉘을 시작해야합니다 (또는 GNU readline 라이브러리를 사용하는 다른 프로그램을 실행해야 함).
Croad Langshan

11

Alt- BackspaceCtrl- w는 일반적으로에 매핑됩니다 backward-kill-word. 시스템에 매핑 된 것을 찾으려면 (있는 경우) 실행하십시오 bind -P | grep '^backward-kill-word'.

@Barmar 에서 설명했듯이 unix-word-rubout이는 이전 공간 경계를 제거 하는와 다릅니다 .


그러나 그것은 전체 단어를 죽일 것입니다. 나는 마지막 슬래시까지만 죽이고 싶습니다
woodstok

마지막 슬래시까지만 제거합니다. 슬래시는 기본 단어 구분 기호 중 하나입니다. Bash를 사용하고 있습니까?
l0b0

내 나쁜 .. Alt-Backspace는 마지막 슬래시까지 제거합니다. ALt-BackSpace와 Ctrl-W의 차이점은 무엇입니까?
woodstok 2016 년

3
Ctl-w는 일반적으로 다음에 바인딩됩니다 unix-word-rubout. 공백을 단어 경계로 사용하여 지점 뒤의 단어를 제거합니다.
Barmar

2
이것은 정확히 작동하지 않습니다. "단어는 영숫자 문자 (문자 및 숫자)로 구성됩니다." 따라서 슬래시보다 훨씬 더 많이 멈출 것입니다. 기본 언 바운드 unix-filename-rubout는 공백과 슬래시에서 멈추기 때문에 약간 더 좋습니다.
Sparhawk

6

이것을 .inputrc넣고 새 쉘을 시작 하십시오 .

C-b:unix-filename-rubout

Ctrl- b다음 슬래시로 거꾸로 지 웁니다.

니르바나!

잊지 마세요 Ctrl- XCtrl- E당신이 편안 복잡한 명령 줄을 편집 할 수 있도록 편집기를 시작합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.