똑똑한 배쉬 탭 완성


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를 제안 하지만 Fink 와 MacPorts 도 bash_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.