중복된 내용이라면 사과드립니다. 하지만 편집을 시도했지만 실패했습니다 vim
.
특히 LaTeX 문서를 편집할 때 사용하고 싶지 않은 것이 많습니다 . 즉, 문서가 컴파일될 때 생성되는 다른 파일이 아닌 파일 vim
만 편집하고 싶습니다 ..tex
.aux
.pdf
나는 이 명령을 가지고 놀았 complete
지만 별로 재미가 없었습니다.
다음 명령이 .aux
생성된 파일 이름 목록에서 파일을 제거하지 않는 이유는 무엇입니까?
$ complete -o default -X '^.*aux' vim
답변1
원하는 패턴은 정규식이 아니라 glob이므로 파일을 완성하고 있음을 알려야 bash
합니다 . -f
또한 이렇게 default
하면 방금 필터링한 파일 이름이 추가되므로 해당 옵션을 제거하거나 다른 것을 선택하면 됩니다( 디렉토리도 완성되도록 -o
이 옵션을 사용했습니다 ). dirnames
다음 작업을 수행해야 합니다.
complete -f -o dirnames -X '*.@(aux|pdf)' vim
man
사용된 glob에 대한 관련 페이지 참조:
내장된 shopt를 사용하여 extglob 쉘 옵션을 활성화하면 여러 확장 패턴 일치 연산자가 인식됩니다. 다음 설명에서 패턴 목록은 |로 구분된 하나 이상의 패턴 목록입니다. 복합 패턴은 다음 하위 패턴 중 하나 이상을 사용하여 형성될 수 있습니다.
?(pattern-list) Matches zero or one occurrence of the given patterns *(pattern-list) Matches zero or more occurrences of the given patterns +(pattern-list) Matches one or more occurrences of the given patterns @(pattern-list) Matches one of the given patterns !(pattern-list) Matches anything except one of the given patterns
extglob
완료되면 활성화해야 bash
하지만 그렇지 않은 경우에도 이 작업을 수행해야 합니다.