Câu trả lời:
Để có được hiệu ứng tương tự bash
, bao gồm ...
, hãy thử:
%(4~|.../%3~|%~)
Kiểm tra này, nếu đường dẫn dài ít nhất 4 phần tử ( %(4~|true|false)
) và, nếu đúng, sẽ in một số dấu chấm với 3 phần tử cuối cùng ( .../%3~
), nếu không thì đường dẫn đầy đủ được in %~
.
Tôi nhận thấy rằng bash
dường như rút ngắn các đường dẫn trong thư mục chính khác nhau, ví dụ:
~/.../some/long/path
Đối với một hiệu ứng tương tự, bạn có thể muốn sử dụng:
%(5~|%-1~/…/%3~|%4~)
Điều này kiểm tra xem đường dẫn có dài hơn 5 phần tử hay không và trong trường hợp đó sẽ in phần tử đầu tiên ( %-1~
), một số dấu chấm ( /…/
) và 3 phần tử cuối cùng. Nó không hoàn toàn giống như các đường dẫn, không có trong thư mục chính của bạn, cũng sẽ có phần tử đầu tiên ở đầu, trong khi bash
chỉ in các dấu chấm trong trường hợp đó. Vì thế
/this/…/some/silly/path
thay vì
.../some/silly/path
Nhưng điều này có thể không nhất thiết là một điều xấu.
PROMPT
biến môi trường trong bạn .zprofile
, ví dụ:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
và thực sự không cần export
bất kỳ tham số nội bộ nào như PROMPT
.
Ngoài các câu trả lời khác được đưa ra ở đây, bạn cũng có thể sử dụng %<
để cắt bớt đường dẫn đến một số ký tự nhất định . Tôi thấy điều này thích hợp hơn để sử dụng %<n>d
, vì các yếu tố đường dẫn riêng lẻ rõ ràng có thể khá dài trong chính chúng. Sử dụng %<
mang lại một chiều dài nhanh chóng tối đa dự đoán hơn nhiều.
Ví dụ: để cắt ngắn phần tử đường dẫn với mở rộng dấu ngã ( %~
) thành 15 ký tự, thay thế các ký tự bị xóa bằng ..
, bạn có thể làm một cái gì đó như thế này:
PROMPT='%n@%m:%15<..<%~%<<%# '
Điều này được ghi lại trong hướng dẫn sử dụng Zsh trong phần Mở rộng Prompt , ngay cuối trang.
Bạn có thể sử dụng %3d
mở rộng nhanh chóng :
/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $
Dạng tổng quát là %d
, nếu có bất kỳ số nguyên dương nào theo sau d
chỉ định các thành phần theo dõi để hiển thị đường dẫn hiện tại, số không có nghĩa là hiển thị toàn bộ đường dẫn, số nguyên âm có nghĩa là đường dẫn hàng đầu để hiển thị:
.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $
Xem http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html hoặcman 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 ‘~’.
Vì vậy, để có được một cái gì đó tương tự PROMPT_DIRTRIM=3
, bạn có thể sử dụng %3d
hoặc %3~
, ví dụ
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/b
như.../a/b
thay vì~/a/b
. Để khắc phục điều đó, bạn có thể sử dụng%(5~|…/%3~|%~)
.