Dofiles 소개

9643 단어 Zshdotfilestech
https://github.com/zakuro9715/dotfiles
제가 좋아하는 부분을 소개하겠습니다.

Install & bootstrap

zsh bootstrap.zsh 일발 모두 설정.
또한 완전히 새로운 환경에서'curl-ssSLza.'.kuro.red/install.sh|sh만 있으면 환경을 구축할 수 있습니다.

Installer


설치에 들어가는 스크립트는 자동으로 설치 프로그램으로 실행됩니다.

Repo 명령


개요


창고 이름 cd 디렉터리에서 터미널 제목을 창고 이름으로 설정합니다.
창고는 ghq에서 관리한다.ghq와peco의 조합 패턴을 볼 수 있지만 이런 상황에서 유형수가 많아지기 때문에 스스로 지령을 만들었다.

기능

  • 리포[cd]NAME로 창고로 이동
  • 리포 get URL에서 ghqget으로 창고를 이동한 후 리포 cd와 같은 처리
  • 사용 예


    $ repo dotfiles            # リポジトリ名だけ指定
    $ repo zakuro9715/dotfiles # 名前が被る場合は github.com やユーザー名をつけて指定
    $ repo get github.com/github/hub # ghq get してから hub のリポジトリに移動
    

    코드


    https://github.com/zakuro9715/dotfiles/blob/7943a1e95586c69eae6747d85d7bfc4754b8aa7b/home/.zsh/commands.zsh#L6-L61
    set-title() {
      title=$@
      if [[ -z "$title" ]];
      then
        title="$(basename $(pwd))"
      fi
      echo -ne "\033]0;${title}\a"
    }
    
    find-repo() {
      target="$(echo "/$1" | sed 's/\/\+/\//g')"  # multi slash to single slash
      ghq list -p | grep --color=never -E "$target$" | head -n1
    }
    
    cd-repo() {
      repo=$1
      dir=$(find-repo $repo)
      if [[ "$dir" == "" ]]
      then
        echo "Repository $repo not found" >&2
        return 1
      fi
    
      set-title "$(basename $dir)"
      cd $dir
    }
    
    
    get-cd-repo() {
      repo="$1"
      dir="$(ghq get --silent -u $repo 2>&1 | grep -oE $(ghq root)/.+$)"
      set-title "$(basename $dir)"
      cd "$dir"
    }
    
    repo() {
      mode="cd"
      case "$1" in
        "cd"  ) shift ;;
        "get" )
          mode="get"
          shift ;;
      esac
    
      if [[ -z "$1" ]];
      then
        echo "Usage: repo [get|cd] NAME" >&2
        return 1
      fi
    
    
      case "$mode" in
        "cd"  ) cd-repo "$1" ;;
        "get" ) get-cd-repo "$1" ;;
      esac
    }
    

    미묘한 곳


    아직 다 채우지 못했습니다.

    좋은 웹페이지 즐겨찾기