Bash
ma PROMPT_DIRTRIM
opcję, np. kiedy ustawię PROMPT_DIRTRIM=3
, to długa ścieżka jak:
user@computer: /this/is/some/silly/path
wyświetli się zamiast:
user@computer: .../some/silly/path
Czy istnieje podobna opcja dla zsh
?
Aby uzyskać podobny efekt bash
, tj. ...
Spróbuj:
%(4~|.../%3~|%~)
To sprawdza, czy ścieżka ma co najmniej 4 elementy ( %(4~|true|false)
) i, jeśli jest prawdą, drukuje niektóre kropki z ostatnimi 3 elementami ( .../%3~
), w przeciwnym razie drukowana jest pełna ścieżka %~
.
Zauważyłem, że bash
wydaje się , że skraca ścieżki w katalogu domowym inaczej, na przykład:
~/.../some/long/path
Aby uzyskać podobny efekt, możesz użyć:
%(5~|%-1~/…/%3~|%4~)
Sprawdza, czy ścieżka jest dłuższa niż 5 elementów, i w takim przypadku drukuje pierwszy element ( %-1~
), niektóre kropki ( /…/
) i ostatnie 3 elementy. To nie jest dokładnie to samo, co ścieżki, których nie ma w twoim katalogu domowym, również będą miały pierwszy element na początku, podczas gdy bash
w tym przypadku drukują tylko kropki. Więc
/this/…/some/silly/path
zamiast
.../some/silly/path
Ale to niekoniecznie musi być złą rzeczą.
~/a/b
jako.../a/b
zamiast~/a/b
. Aby to naprawić, możesz użyć%(5~|…/%3~|%~)
.PROMPT
zmienną środowiskową w swoim.zprofile
, np .:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
i naprawdę nie ma potrzebyexport
żadnych wewnętrznych parametrów powłoki, takich jakPROMPT
.Oprócz innych podanych tutaj odpowiedzi można także użyć
%<
do przycięcia ścieżki do określonej liczby znaków . Uważam, że jest to lepsze niż użycie%<n>d
, ponieważ poszczególne elementy ścieżki mogą być same w sobie dość długie. Użycie%<
daje znacznie bardziej przewidywalną maksymalną długość zachęty.Na przykład, aby skrócić w lewo element ścieżki z rozszerzeniem tyldy (
%~
) do 15 znaków, zastępując usunięte znaki..
, możesz zrobić coś takiego:Jest to udokumentowane w podręczniku Zsh w Podpowiedzi rozszerzenia , na końcu strony.
źródło
Możesz użyć
%3d
szybkiego rozszerzenia :Ogólna postać jest
%d
taka, że jeśli jakakolwiek dodatnia liczba całkowitad
określa składowe końcowe do pokazania bieżącej ścieżki, zero oznacza całą ścieżkę, ujemna liczba całkowita oznacza wiodącą ścieżkę do pokazania:źródło
Zobacz http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html lub
man zshmisc
Aby uzyskać coś podobnego
PROMPT_DIRTRIM=3
, możesz użyć%3d
lub%3~
npźródło