더 간결한 버전
"\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 로 이동한 t
후 Tab다시 클릭하세요. 당신은 얻을 것이다
$ 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
부분을 삭제하고 를 입력한 B
후 Tab다시 -complete를 하고자 합니다. 이렇게 하면 이후의 모든 부분 BBBBBBB
도 삽입되어 중복이 발생하므로 분명히 원하지 않습니다.
편집 모드 에서는 vi
이 문제를 매우 빠르게 처리할 수 있지만(복제된 섹션으로 빠르게 이동하여 삭제합니다) 여전히 짜증스럽습니다.
우연히 skip-completed-text
bash 매뉴얼 페이지에서 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
, deletefour
, write only 로 이동한t
후 Tab다시 클릭하세요.
하다
커서를 이전으로 이동하고 four
쓰기만 한 t
다음 클릭합니다 Tab( Ctrlk기본적으로 끝까지 커서에서 삭제).