Dużo pracuję w terminalu, więc wiele się nauczyłem o mojej powłoce wyboru, zsh. Z jakich funkcji zsh korzystasz, aby być bardziej wydajnym w pracy? Jednym z moich ulubionych jest autouzupełnianie multi-dir. Zamiast pisać cd /fo{tab}/ba{tab}/ba{tab}
, mogę po prostu cd /fo/ba/ba{tab}
zapisać i zapisać tak wiele naciśnięć klawiszy!
command-line
shell
zsh
Frew Schmidt
źródło
źródło
Odpowiedzi:
Właśnie znalazłem ten mały klejnot:
Ta forma
cd
zastępuje wszystkie wystąpieniaold
w pełnej ścieżce bieżącego katalogunew
i próbuje zmienić katalog roboczy na ścieżkę wynikową.Na przykład, jeśli masz katalog roboczy
/home/larry/code/backrub/server
i chcesz się przełączyć/home/sergei/code/backrub/server
, wszystko, co musisz zrobić, to:źródło
Zajmę się rzeczami, których, o ile mi wiadomo, bash nie może zrobić.
Fantazyjne zakończenie. Tak, bash ma go trochę, ale zsh zna więcej poleceń, jest często bardziej precyzyjny i ma wiele innych możliwości konfiguracji.
**
Glob, np**/foo
szuka plików o nazwiefoo
w podkatalogów rekurencyjnie. (I***/foo
również podąża za dowiązaniami symbolicznymi.) Dwa znaki zamiast długiegofind
polecenia (co jest trudne do uzyskania, jeśli niektóre nazwy plików zawierają znaki specjalne, takie jak spacje i cudzysłowy).Rzadziej kwalifikatory glob jak w
foo*(*)
(jakfoo*
, ale zachowują tylko pliki wykonywalne),foo(.)
(tylko zwykłe pliki, nie katalogi),foo(-@)
(tylko wiszące dowiązania symboliczne),foo*(m-5)
(tylko pliki zmodyfikowane w ciągu ostatnich 5 minut),foo*(om[1])
(ostatnio zmodyfikowany plik) itd.autocd
: Wpisanie nazwy katalogu jako polecenia zmienia się w nią (cd
lub wpushd
zależności od tego, jak ją skonfigurowałeś).cd
Komenda jest trzy znaki zbyt długo! Nie mogę używać uderzenia dłużej niż trzydzieści sekund bez odczuwania bólu. Mam również kilka funkcji jednoznakowych, takich jakzmv
Wbudowane iW tym momencie
noglob
wbudowane.Funkcje
precmd
ipreexec
hook: Używam,preexec
aby ustawić tytuł mojego terminala tak, aby zawierał działającą komendę iprecmd
zastąpić komendę kodem wyjścia. Coś jakbg
(tak, że Ctrl + Z Ctrl + Z zawiesza program i natychmiast wznawia go w tle).setopt append_history autocd extended_glob no_match
źródło
zdolność zsh do autouzupełniania rzeczy oprócz plików i katalogów.
Na przykład, z zainstalowanym pakietem git, git-sh {tab} wyświetla:
źródło
Bardzo podoba mi się globalne aliasy
pozwól mi zrobić coś takiego
i wywołaj.
źródło
Jak wspomnieli inni, autouzupełnianie zsh jest doskonałe.
Możesz również skonfigurować własne autouzupełnianie dla niestandardowych poleceń bez zbytniego wysiłku. Aby wstawić do zakładki pełne nazwy użytkowników jako argumenty do palca:
Inne opcje, które chciałbym ustawić:
Pushd i popd są również bardzo przydatne.
Irytujące klucze home i end domyślnie nie działają na Zsh, jak na innych powłokach, ale można to naprawić.
źródło
Włącz automatyczne uzupełnianie podczas korzystania
scp
ze zdalnego serwera.Właściwy monit o wyświetlenie dodatkowych informacji.
źródło