oh-my-bash 전력선의 좁은 cwd 경로

oh-my-bash 전력선의 좁은 cwd 경로

oh-my-bash의 powerline 테마를 사용하고 있는데 cwd 프롬프트가 가끔 너무 길어지는 경우가 있습니다. powerline.base.sh파일에서 이것을 찾았는데 비밀번호를 반환하는 것 같습니다 .

function __powerline_cwd_prompt {
    echo "$(pwd | sed "s|^${HOME}|~|")|${CWD_THEME_PROMPT_COLOR}"
}

~/stuff/moreStuff/.../now 또는 이와 유사한 긴 디렉토리를 압축할 수 있도록 수정하고 싶습니다. BASH에 대해 잘 모르는데 어떻게 해야하는지 궁금합니다.

답변1

만약에 내가 놀랄 것입니다아 난 난교야경로를 단축하는 옵션/기능이 없습니다.

그럼에도 불구하고 단축기를 사용한 빠른 시도는 다음과 같습니다(종종 전통적으로 시작부터 단축됨).

#!/usr/bin/env bash

# Credit: https://stackoverflow.com/a/17841619/2858703
join_by() { local IFS="$1"; shift; echo "$*"; }

short_pwd() {
  IFS='/' read -a directory < <(pwd)

  local -i trim_level=${1:-3} # default trim level of 3

  if [ ${#directory[*]} -ge ${trim_level} ] && [ ${trim_level} -gt 0 ]; then
    join_by / "..." "${directory[@]: -${trim_level}}"
  else
    pwd
  fi
}

# examples
short_pwd
short_pwd 2
# these cause no trimming
short_pwd 0
short_pwd -1
short_pwd a

.현재 형식에서는 이를 사용하려면 소스를 제공(예제 제거) 해야 합니다 . 또는 예제를 대체하려면 short_pwd $1스크립트로 실행할 수 있습니다(전달된 첫 번째 매개변수가 다듬기 수준을 결정함).

감사의 말이 답변.

(이 질문은 이전에 여러 번 해결되었을 수도 있지만 때로는 직접 해결해 보는 것도 재미있습니다.)

편집: 내가 지나치게 엔지니어링했다는 것을 깨달았습니다. 이제 우아함을 더해보세요!

관련 정보