>

Oh-My-ZSH 를 사용하여 반복적 인 작업 부하를 완화합니다.

컴퓨터의 아무 곳에서나 프론트 엔드 디렉토리로 이동해야합니다. 이것이 내가 가진 것입니다 :

frontend(){
  cd ~/Desktop/Work/Frontend
  cd $1
}

이제 frontend 를 입력하면 잘 작동합니다.  또는 frontend myProject 그러나 모든 프로젝트 폴더에는 .m 와 같은 접미사가 붙습니다. .tablet

어떻게 쓸 수 있나요 :

  • .something 가 뒤 따르는 폴더로 자동 이동하겠습니다.

  • project.m 와 같은 여러 옵션이있는 경우  그리고 project.tablet )는 터미널에서 탭을 누르고 자동 완성에 대한 여러 옵션이 제공되는 경우와 비슷한 옵션을 묻는 메시지를 표시합니다.

내 질문이 이해되기를 바랍니다.

감사합니다.


  • 답변 # 1

    와이즈 비즈 찾기  먼저 해결책을 찾은 다음 zsh  해결책.

    업데이트: bash 로 밝혀졌습니다  구현 (내장 zsh 기반) )는 compctl 보다 훨씬 간단합니다.  구현 (내장 bash 기반) ).

    관심있는 코드를 파일에 저장하십시오 (예 : complete ) 및소스(예 : frontend ) );대화식으로 또는 bash/zsh 프로필을 사용하는 것이 좋습니다.

    . ./frontend 에서 서브 디렉토리 이름 자동 완성  다음과 같이 작동합니다 :

    예 : ~/Desktop/Work/Frontend  Tab 키를 누릅니다.

    frontend myProject  그런 다음 myProject 의 하위 디렉토리 이름과 접두사 일치 :

    일치 만 있으면 ~/Desktop/Work/Frontend  전체 하위 디렉토리 이름으로 즉시 확장됩니다.

    그렇지 않으면 여러 개의 일치 항목이 있음을 나타내는 경고음이 울립니다.

    myProject : 일치하는 모든 하위 디렉토리의 이름이 바로 표시됩니다.

    zsh : 탭다시를 눌러 일치하는 모든 하위 디렉토리의 이름을 표시하십시오

    접두사가 일치 할 때까지 계속 입력 한 다음 Tab 키를 다시 누릅니다.

    참고 : bash 에서 , 여러 번 일치하는 항목을 나열하기 위해 Tab한 번만 누르면 셸 프로파일 bash 에 다음을 추가하십시오. .

    <시간>

    zsh솔루션 :

    bind "set show-all-if-ambiguous on"
    
    
    <시간>

    bash솔루션 :

    참고 : # Define the shell function. frontend(){ cd ~/Desktop/Work/Frontend/"${1:-}" } # Tell zsh to autocomplete directory names in the same directory as # the function's when typing a command based on the shell function. compctl -/ -W ~/Desktop/Work/Frontend frontend  불행히도 인수를하지 않습니다-항상현재디렉토리에 대해 자동 완성됩니다. 따라서 complete -o dirnames 와 결합하여 잠재적 일치 항목을 리턴하는 사용자 정의 쉘 함수 이 필요합니다.

    -o filenames
    
    

  • 답변 # 2

    AutoJump를 사용하는 것이 좋습니다

    하지만 필요한 경우 # Define the main shell function. frontend(){ local BASEDIR=~/Desktop/Work/Frontend cd "$BASEDIR/${1:-}" } # Define the custom completion function. _frontend_completions() { local BASEDIR=~/Desktop/Work/Frontend # Initialize the array variable through which # completions must be passed out. COMPREPLY=() # Find all matching directories in the base folder that start # with the name prefix typed so far and return them. for f in "$BASEDIR/${COMP_WORDS[COMP_CWORD]}"*; do [[ -d $f ]] && COMPREPLY+=( "$(basename "$f")" ) done } # Tell bash to autocomplete directory names as returned by the # _frontend_completions() helper functoin when typing a command # based on the main shell function. complete -o filenames -F _frontend_completions frontend fe 를 사용하고 싶을 수도 있습니다.
    당신의 alias 에서처럼  추가 :

    ~/.zshrc
    
    
    alias fend='cd path/to/frontend'

  • 이전 SQL에 여러 값이있는 열에 조건부 집계를 사용하는 방법
  • 다음 javascript - js - settimeout이 완료되었거나 취소되었는지 확인