Bash는 어떻게 텍스트 완성을 건너뛰나요?

Bash는 어떻게 텍스트 완성을 건너뛰나요?

더 간결한 버전

"\t": menu-complete~/.inputrc이 두 파일을 생성한 후,

$ touch one.two.txt
$ touch one.four.txt

다음 내용을 작성하기 시작합니다.

$ ls one

히트 Tab하면 얻을 것이다

$ ls one.four.txt

이제 커서를 before four, delete four, write only 로 이동한 tTab다시 클릭하세요. 당신은 얻을 것이다

$ ls one.two.txt.txt

.txt이 작업 흐름에서 중복을 방지할 수 있는 방법이 있나요 ?

원래 질문

나는 누를 때 menu-complete반복하는 bash 기능을 사용하는데 Tab만족합니다. 그러나 다음과 같은 상황이 나에게 자주 발생합니다.

longparthardtoremember.with.QQQQQQQ.extension이 파일이 포함된 디렉토리에서 파일을 찾고 있다고 가정해 보겠습니다.

longparthardtoremember.with.AAAAAAA.nice.long.extension
longparthardtoremember.with.BBBBBBB.very.nice.long.extension
...

Tab완료 하면 $ long첫 번째 파일 이름이 삽입됩니다. 이때 파일명 중간으로 이동하여 해당 AAAAAAA부분을 삭제하고 를 입력한 BTab다시 -complete를 하고자 합니다. 이렇게 하면 이후의 모든 부분 BBBBBBB도 삽입되어 중복이 발생하므로 분명히 원하지 않습니다.

편집 모드 에서는 vi이 문제를 매우 빠르게 처리할 수 있지만(복제된 섹션으로 빠르게 이동하여 삭제합니다) 여전히 짜증스럽습니다.

우연히 skip-completed-textbash 매뉴얼 페이지에서 bash 옵션을 발견했습니다. 이것이 나에게 필요한 것이 아닌가? 설정했지만 on작업 완료 동작에 차이가 없습니다 Tab. 제가 맨페이지를 잘못 이해한 걸까요?

답변1

skip-completed-text다음과 같이 작동합니다(예제 사용 touch one.four.txt).

$ ls one.four
#        ^ cursor is on the f

Tab 키를 누르면 skip-completed-text on완료됩니다.

$ ls one.four.txt

Tab 키를 누르면 skip-completed-text off완료됩니다.

$ ls one.four.txtour

따라서 이 설정은 완성 사이에서 편집할 때 실제로 도움이 되지 않습니다.

답변2

바꾸다

이제 커서를 before four, delete four, write only 로 이동한 tTab다시 클릭하세요.

하다

커서를 이전으로 이동하고 four쓰기만 한 t다음 클릭합니다 Tab( Ctrlk기본적으로 끝까지 커서에서 삭제).

관련 정보