똑똑한 배쉬 탭 완성


6

Ubuntu의 최근 스위처 (최근의 스위치 후원자 인 경우)는 이전에 Mac 사용자 일 때보 다 명령 줄에서 훨씬 더 많이 나를 찾고 있습니다. 내가 우분투에 대해 정말로 좋아했던 한 가지는 클래스를 위해 Java 프로그램을 컴파일하고 실행할 때 내 탭 완성이 실제로 똑똑하다는 것입니다. 다음과 같은 디렉토리가 있으면 클래스를 컴파일해야 할 때 :

Example.java
Example.class
Client.java
Client.class

그리고 내가 입력 한 가장 최근의 변경 사항을 고려하기 위해 Client.java를 컴파일해야했습니다.

javac C [TAB]

그리고 그것은 완료

javac Client.java

.class에서 javac를 실행할 수 없으므로 .class 파일을 무시합니다. 또한 파일 입력을 실행하고 싶을 때

java C [TAB]

결과

java Client

마침표없이 이것은 탭 완성을 수행하는 매우 현명한 방법이었습니다. 이제 익숙해 져서 탭을 쳤을 때 나를 미치게하고 클라이언트에게 제공합니다. 실제로 내가 원하는 것을 완성하지 않고.

그렇다면 Mac bash 완성을 더 똑똑하게 만드는 방법이 있습니까?

답변:


4

* nix 패키지 bash_completion는 타사 패키지 관리자와 함께 설치할 수 있습니다. Homebrew를 제안 하지만 FinkMacPortsbash_completion패키지를 제공합니다 . 설명하는 Java 상황을 자동으로 처리하지 않으면 맨 페이지를 다시 게시하거나 읽으십시오.


1

기본 쉘을 bash 대신 zsh로 설정하는 것이 좋습니다 . Mac OS X에 번들로 제공되며 bash와 완벽하게 호환되지만 훨씬 더 스마트 한 탭 완성을 포함하여 멋진 기능을 추가합니다.

함께 사용해보십시오 chsh /bin/zsh

oh-my-zsh 라는 zsh 환경을 관리하기위한 훌륭한 프레임 워크도 있습니다 . 강력한 사용자 지정을위한 훌륭한 출발점입니다.


흥미 롭다 ... 절대로 껍질을 완전히 바꾸려고 생각하지 않았을 것이다. 별칭 및 변수 내보내기가 진행되는 한 현재 bash 구성의 대부분이 손실되지 않습니까?
CaldwellYSR

@CaldwellYSR Zsh는 일반적으로 bash보다 강력합니다 (bash는이 특정 인스턴스에서도 작업을 수행 할 수 있음). Zsh는 bash와 완전히 호환되지 않으므로 일부 사용자 지정 내용이 손실됩니다. 별칭 및 변수 내보내기를 복사 할 수 있지만 프롬프트 설정과 같은 다른 항목을 다시 실행해야합니다.
Gilles

OP가 설정을 완전히 전환한다고 제안하는 것이 합리적입니다.
josh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.