Bash 자동 완성을 위해 vim 명령 사용

Bash 자동 완성을 위해 vim 명령 사용

vimBash에서는 두 디렉터리보다 깊은 경로가 포함된 명령을 실행할 때 최근 경로 자동 완성 기능이 작동을 멈췄습니다( ls및 같은 다른 명령의 경우 예상대로 계속 작동했습니다 cd).

예를 들어, 입력 ls .config/btsync/bt한 다음 TAB을 누르면 ls .config/btsync/btsync.conf.

입력한 vim .config/bt다음 TAB을 누르면 vim .config/btsync/.

그러나 입력 한 다음 TAB을 누르면 아무 일도 일어나지 않습니다. ( 위의 예 처럼 vim .config/btsync/bt으로 확장하고 싶습니다 .vim .config/btsync/btsync.confls

내 사용자로 실행할 때와 su로 실행할 때 동일한 문제가 있습니다.

나는 읽었다이 게시물이전 버전의 bash-completion 관련 문제가 언급되어 있지만 2.1-5를 실행하고 있습니다.

업데이트: 몇 가지 추가 테스트를 거친 후 근본 문제는 bash가오직파일 이름이 아닌 전체 디렉터리 이름입니다.

bash-completion업데이트: 이것이 전반적인 이유인 것으로 밝혀졌습니다 . 허용되는 답변에 대한 두 번째 의견을 참조하십시오.

이 동작의 잠재적 원인에 대한 제안을 주시면 감사하겠습니다!

답변1

나는 당신을 위해 좀 더 조사한 결과 이것이 내가 찾은 것입니다. 자동 완성의 핵심은 bash명령 입니다 complete. 사용 규칙을 인쇄할 수 있습니다 vim.

complete -p vim

다시 말하지만, 다음을 통해 이러한 특정 규칙을 제거할 수 있습니다.

complete -r vim

이 명령은 이를 기본값(추가 논리 없이 일반적인 경로 및 파일 이름 완성)으로 재설정합니다. 이것이 당신이 원하는 것일 수도 있습니다.

자세한 내용은 명령에 대한 섹션을 확인 help complete하거나 찾아보십시오 (bash 내장 기능이므로 bash 맨페이지에 문서화되어 있습니다).man bashcomplete

bash마지막 참고 사항 - 로그인할 때마다 vim 규칙을 제거하려는 경우 위 변경 사항은 현재 세션에만 영향을 complete -r vim미치며 ~/.bashrc.

도움이 되었기를 바랍니다 :)

답변2

Bash는 기본적으로 경로와 파일 이름만 자동 완성합니다. 그러나 메커니즘은 확장 가능하며 bash는 다양한 프로그램에 대해 다양한 자동 완성을 수행하도록 가르칠 수 있습니다. 예를 들어, git경로 이름뿐 아니라 하위 명령 이름(복제, 커밋)과 개정도 자동 완성할 수 있습니다. 확장자 없이 파일 이름을 gzip -d자동 완성하는 것을 거부하는 경우와 같이 편리할 때도 있지만 성가실 때도 있습니다 ..gz

Bash 완성은 일반적으로 다음에서 구성됩니다 . 여기서라는 파일을 찾을 /etc/bash_completion.d수 있습니다 . vim이 파일에는 vim명령줄 자동 완성 규칙이 포함되어 있습니다.

이제 두 가지 옵션이 있습니다.

  1. 사용자가 예상하는 대로 파일을 자동 완성 경로로 수정하세요.
  2. 특수 규칙을 비활성화 vim하고 기본 경로 자동 완성만 수행하려면 이 파일을 삭제하세요.

물론, 향후 릴리스에서 수정될 수 있도록 문제를 설명하는 버그 보고서도 제출하세요. :)

답변3

bash 완성을 다시 설치할 수도 있습니다. apt-get install --reinstall bash-completion

/etc/bash.bashrc 파일을 살펴보세요: nano /etc/bash.bashrc

그리고 다음 줄의 주석 처리가 완전히 제거되었는지 확인하세요.

if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi

그런 다음 터미널 세션을 다시 시작하십시오.

관련 정보