vim
조금 길 때 경로에서 활용하는 정말 멋진 기능이 있습니다.
맨 위에있는 탭에서 문서의 경로를 줄여줍니다. 이것과 비슷한 것을 할 수있는 방법이 있습니까? 내 bash 프롬프트는 다음과 같이 보이지 않습니다 :
rfkrocktk@work-laptop ~/Documents/Projects/Work/maventest/src/main/java/com/tkassembled/ $
답변
PROMPT_COMMAND='PS1X=$(perl -pl0 -e "s|^${HOME}|~|;s|([^/])[^/]*/|$""1/|g" <<<${PWD})'
또는 순수한 배쉬 :
PROMPT_COMMAND='PS1X=$(p="${PWD#${HOME}}"; [ "${PWD}" != "${p}" ] && printf "~";IFS=/; for q in ${p:1}; do printf /${q:0:1}; done; printf "${q:1}")'
그때
PS1='\u@\h ${PS1X} $ '
를 생성합니다 (에 ~
대한 알림 ${HOME}
) :
rfkrocktk@work-laptop ~/D/P/W/m/s/m/j/c/tkassembled $
@enzotib의 덕분에 답변이 향상되었습니다.
답변
@nicerobot 답변과 비슷하지만 다소 짧습니다.
PROMPT_COMMAND='pwd2=$(sed "s:\([^/]\)[^/]*/:\1/:g" <<<$PWD)'
PS1='\u@\h:$pwd2\$ '
다음 예제 출력이 표시됩니다.
enzotib@acer:/h/enzotib$ cd
enzotib@acer:/h/enzotib$ cd /usr/share/doc/acpid/examples/
enzotib@acer:/u/s/d/a/examples$
답변
나는 PROMPT_DIRTRIM
bash에서 좋아한다 …
export PROMPT_DIRTRIM=2
예제 프롬프트를 다음으로 변경합니다 …
rfkrocktk@work-laptop ../com/tkassembled/ $
그것은 나를 위해 작동합니다.
답변
에 추가 enzotib , 다음 코드는 것이다 대답의 ‘
- 변환
/Path/To/Your/Home/
에~/
(경로가 될 수 있도록~/a/b/c
대신/P/T/Y/H/a/b/c
) -
점만 표시하는 대신 ‘점 파일’의 첫 글자를 사용하십시오 (
/a/./c/d
가됩니다/a/.b/c/d
) :PROMPT_COMMAND='PS1_PATH=$(sed "s:\([^/\.]\)[^/]*/:\1/:g" <<< ${PWD/#$HOME/\~})' export PS1='\u@\h:$PS1_PATH\$ '
작은 따옴표를 사용하십시오. 그렇지 않으면 bash가 조기에 확장합니다.
답변
귀하의 형식 PS1
은 \W
( man 페이지 의 PROMPTING
섹션을 bash
참조하십시오).
PS1="\u@\h \W\$ "
그리고 다른 옵션을 읽고 싶을 수도 있습니다. 명령 행으로 멋진 일을 할 수 있습니다.
답변
nicerobot의 예제 출력을 좋아하지만 한 가지 문제가 있습니다. 나는 거기에 하이픈이있는 디렉토리가 A-E
, 그리고 그것을보고 있었다 -E
인수로 printf
내 현재 작업 디렉토리 때. 이 문제를 해결하기 위해 출력 할 것이없는 경우 --
마지막 printf
에 따옴표를 추가하고 출력 주위에 따옴표를 추가했습니다.
p="${PWD#${HOME}}"; [ "${PWD}" != "${p}" ] && printf "~";IFS=/; for q in ${p:1}; do printf /${q:0:1}; done; printf -- "${q:1}"