bash를위한 프롬프트 경로 축소 도구를 구현하여 PS1 환경 변수에 포함 시켰습니다. 이렇게하면 작업 디렉터리가보다 작지만 여전히 설명적인 것으로 축소됩니다. 나는 다른 아이디어가 존재할지 궁금하다. "20"은 최대 파라미터 인과코드 챌린지 : Bash 프롬프트 경로 단축자
PS1='\[\033[01;32m\]\[email protected]\h\[\033[01;34m\] $(
_dir_chomp "$(pwd)" 20
)\[\033[01;37m\]$(parse_git_branch)\[\033[01;34m\] \$\[\033[00m\] '
:
은 (행 바꿈 가독성 삽입)이 추천 PS1에 포함될 수 떠들썩한 기능 _dir_chomp
만들기 : 여기
/usr/portage/media-plugins/banshee-community-extensions/files
는/u/p/m/b/files
/home/user1/media/video/music/live-sets
이~/m/v/m/live-sets
/home/user2/media
(20 문자 제한을 초과하지 않음) 변경되지 않습니다/home/user1/this-is-a-very-long-path-name-with-more-than-20-chars
가된다합니다 (문자는 $ 홈에 대한 대체 ~주의)을하게된다~/this-is-a-very-long-path-name-with-more-than-20-chars
(마지막 구성 요소는 약식 상태로 유지됨 : 소프트 한도)/home/user1/src
은~/src
($ HOME 항상 합니다 (접두어 도트 보존 주)/home/user1/.kde4/share/config/kresources
~/.k/s/c/kresources
가된다) 단축
현재 사용자 USER1이다.
이 awk
, perl
, ruby
, python
하지만 컴파일 된 C 프로그램 또는 이와 유사한 같은 외부 통역사를 호출 할 수 있습니다. 즉, 외부 소스 파일을 사용할 수 없으며 코드는 인라인이어야합니다. 최단 버전 승. bash는 함수 본문 (와라는 하위 기능) 수,의 길이는 의미
_sub_helper() {
# this counts
}
_dir_chomp() {
# these characters count (between { and })
_sub_helper "foobar" # _sub_helper body counts, too
}
나는 당신이'parse_git_branch'을 가지고 있다는 것을 알아 차릴 것이다 - 당신이'__git_ps1'에 선호하는 것인가? – Cascabel
그리고 정말로, 누군가가 시간을내어 갈 때까지, 나는 읽을 수없는 -하지만 - 짧은 펄 솔루션을 이길 수 있을지 의심 스럽다. – Cascabel
@ Jefromi : 그것은 단지 하나의 라이너입니다 :'git branch 2>/dev/null | sed -e '/^[^ *]/d'-e 's/* \ (. * \)/[자식 : \ 1] /'' BTW : 내 솔루션이 펄, 펄하지 루비입니다. 한 줄짜리지만 꽤 읽기 쉽습니다. – hurikhan77