คุณสามารถใช้ (mis-) RPROMPTแทนPROMPT(aka PS1) เพื่อให้ได้สิ่งนี้หรืออย่างน้อยก็คล้ายกัน
RPROMPTจะปรากฏขึ้นชิดขวาบนบรรทัดเดียวกันกับพรอมต์ หากคำสั่งที่พิมพ์ของคุณยาวพอที่จะเข้าถึงคำสั่งนั้นRPROMPTจะถูกซ่อนโดยอัตโนมัติ (และปรากฏขึ้นอีกครั้งหากคุณลบออกมากพอ)
เพื่อให้คุณสามารถตั้งค่าที่จะมีเพียงตัวละครที่รวดเร็วและใส่ทุกอย่างลงไปในที่อื่นPROMPT RPROMPTแล้วคุณแผ่นที่มีช่องว่างจนกว่าจะเติมส่วนที่เหลือของสายเพื่อที่จะสัมผัสเกือบRPROMPT PROMPTตัวอย่างเช่น
setopt PROMPT_SUBST
PROMPT='%# '
RPROMPT='%$((COLUMNS-4))>> %n@%m %~${(r:$COLUMNS:)}'
สิ่งนี้ควรแสดงบางสิ่งเช่น
% ▒ user@machine ~
ซึ่ง▒เป็นตำแหน่งของเคอร์เซอร์ เมื่อคุณเริ่มพิมพ์ทุกอย่างหลังจากนั้นจะถูกซ่อน ตัวอย่างเช่น
% echo foo▒
คำอธิบาย:
setopt PROMPT_SUBST เปิดใช้งานการแทนที่พารามิเตอร์ในพรอมต์ในแต่ละครั้งที่ปรากฏพรอมต์
RPROMPTจำเป็นต้องกำหนดในเครื่องหมายคำพูดเดี่ยวเพื่อให้พารามิเตอร์ในนั้นไม่ได้ถูกขยายทันทีตามคำจำกัดความ แต่จะแสดงเพียงครั้งเดียว (พร้อมPROMPT_SUBSTเปิดใช้งาน) วิธีนี้ช่วยให้มั่นใจได้ว่าการขยายตัวทำงานอย่างถูกต้องแม้ในขณะที่ปรับขนาดหน้าต่างเทอร์มินัล
%#เป็นตัวอักษรที่พร้อมท์: #สำหรับราก%สำหรับคนอื่น ๆ
$COLUMNS คือความกว้างปัจจุบันของเทอร์มินัล
%n>>ตัดทุกอย่างทางด้านขวาของมันเป็นnตัวอักษรโดยตัดด้านขวา
$((COLUMNS-4))คำนวณความกว้างที่เหลือหลังจากพรอมต์ซ้าย ( PROMPT) นอกจากตัวละครสองตัวที่PROMPTคุณต้องลบหนึ่งตัวสำหรับเคอร์เซอร์และอีกตัวหนึ่งเพราะRPROMPTไม่ครอบคลุมคอลัมน์สุดท้ายของบรรทัด (หากคุณต้องการใช้PROMPTความยาวผันแปรได้คุณจะต้องคำนวณความยาวแบบไดนามิก)
%n@%m %~เป็นเพียงตัวอย่างและแสดงชื่อผู้ใช้ ( %n) ชื่อเครื่อง ( %m) และไดเรกทอรีปัจจุบัน ( %~)
${(r:$COLUMNS:)}ถูกขยายเป็นสตริงช่องว่างที่มีความกว้างเท่ากับเทอร์มินัล สิ่งนี้ทำให้มั่นใจได้ว่าจะมีช่องว่างภายในเพียงพอเสมอ