Bash
มีPROMPT_DIRTRIM
ตัวเลือกเช่นเมื่อฉันตั้งPROMPT_DIRTRIM=3
แล้วเส้นทางยาวเช่น:
user@computer: /this/is/some/silly/path
จะแสดงแทนเป็น:
user@computer: .../some/silly/path
มีตัวเลือกที่คล้ายกันzsh
หรือไม่
Bash
มีPROMPT_DIRTRIM
ตัวเลือกเช่นเมื่อฉันตั้งPROMPT_DIRTRIM=3
แล้วเส้นทางยาวเช่น:
user@computer: /this/is/some/silly/path
จะแสดงแทนเป็น:
user@computer: .../some/silly/path
มีตัวเลือกที่คล้ายกันzsh
หรือไม่
คำตอบ:
ในการรับเอฟเฟกต์ที่คล้ายกันbash
ซึ่งรวมถึง...
ลอง:
%(4~|.../%3~|%~)
การตรวจสอบนี้ถ้าเส้นทางเป็นอย่างน้อย 4 องค์ประกอบยาว ( %(4~|true|false)
) และถ้าเป็นจริงจะพิมพ์จุดบางคนที่มีช่วง 3 องค์ประกอบ ( .../%3~
) %~
มิฉะนั้นเส้นทางแบบเต็มจะถูกพิมพ์
ฉันสังเกตเห็นว่าbash
ดูเหมือนว่าจะทำให้เส้นทางในไดเรกทอรีภายในสั้นลงเช่น:
~/.../some/long/path
สำหรับเอฟเฟกต์ที่คล้ายกันคุณอาจต้องการใช้:
%(5~|%-1~/…/%3~|%4~)
การตรวจสอบนี้จะตรวจสอบว่าเส้นทางนั้นมีความยาวมากกว่า 5 องค์ประกอบและในกรณีนั้นจะพิมพ์องค์ประกอบแรก ( %-1~
) บางจุด ( /…/
) และองค์ประกอบ 3 รายการสุดท้าย มันไม่เหมือนกับพา ธ ที่ไม่ได้อยู่ในโฮมไดเร็กตอรี่ของคุณ, จะมีองค์ประกอบแรกที่จุดเริ่มต้น, ในขณะที่bash
เพียงพิมพ์จุดในกรณีนั้น. ดังนั้น
/this/…/some/silly/path
แทน
.../some/silly/path
แต่นี่อาจไม่จำเป็นต้องเป็นสิ่งที่ไม่ดี
PROMPT
ตัวแปรสภาพแวดล้อมในของคุณ.zprofile
เช่น:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
และไม่จำเป็นต้องexport
มีพารามิเตอร์ภายในของเชลล์PROMPT
เลย
นอกเหนือจากคำตอบอื่น ๆ ที่ให้ไว้ที่นี่คุณยังสามารถใช้%<
เพื่อตัดทอนเส้นทางไปยังจำนวนอักขระที่กำหนด ฉันคิดว่าสิ่งนี้ดีกว่าที่จะใช้%<n>d
เนื่องจากองค์ประกอบของเส้นทางส่วนบุคคลอาจเห็นได้ค่อนข้างยาวในตัวเอง การใช้%<
ให้ความยาวพร้อมต์สูงสุดที่คาดเดาได้มาก
ตัวอย่างเช่นในการตัดทอนองค์ประกอบพา ธ ด้วยการขยายเครื่องหมายตัวหนอน ( %~
) ถึง 15 ตัวอักษรเพื่อแทนที่อักขระที่ถูกลบด้วย..
คุณสามารถทำสิ่งนี้:
PROMPT='%n@%m:%15<..<%~%<<%# '
เอกสารนี้มีไว้ในคู่มือ Zsh ภายใต้การขยายพร้อมท์ตอนท้ายของหน้า
คุณสามารถใช้%3d
การขยายพรอมต์ :
/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $
รูปแบบทั่วไปคือ%d
ถ้าจำนวนเต็มบวกใด ๆ ตามd
ระบุองค์ประกอบต่อท้ายเพื่อแสดงเส้นทางปัจจุบันศูนย์หมายถึงแสดงเส้นทางทั้งหมดจำนวนเต็มลบหมายถึงเส้นทางชั้นนำที่จะแสดง:
.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $
ดูhttp://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.htmlหรือman zshmisc
%d
%/
Current working directory. If an integer follows the ‘%’, it specifies a number of trailing components of the current working directory to show
%~
As %d and %/, but if the current working directory starts with $HOME, that part is replaced by a ‘~’.
เพื่อให้ได้สิ่งที่คล้ายกับPROMPT_DIRTRIM=3
คุณสามารถใช้%3d
หรือ%3~
เช่น
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/b
ว่าเป็นแทน.../a/b
ในการแก้ไขปัญหาที่คุณสามารถใช้~/a/b
%(5~|…/%3~|%~)