Alternatywa dla „fc -s” w zsh?

7

W bashmiałem przydatny alias:

alias r="fc -s"

Które właśnie powtórzyło ostatnie polecenie. Tak samo jak !!. Jestem już do tego przyzwyczajony (pamięć mięśni), ale nie potrafię wymyślić, jak odtworzyć alias. fcnie ma -sopcji w zsh. Jak mogę powiązać !!zachowanie r?

Ruslan Osipov
źródło

Odpowiedzi:

8

Komenda

fc -e -

powinien robić co chcesz. Jest to trochę trudne, ponieważ fc -e [edit-cmd]zwykle pozwala edytować ostatnie polecenie za pomocą edytora. Ale jeśli jest [edit-cmd]równy -, żaden edytor nie jest wywoływany, a polecenie jest wykonywane natychmiast.

Ale nie potrzebujesz do tego aliasu, ponieważ polecenie rjest już zdefiniowane w powłoce Z :

$ which r
r: shell built-in command

A co to robi Strona podręcznika zshbuiltins o tym wie:

r Tak samo jak fc -e -.

mpy
źródło
Dziwne jest to, że nie ma dokumentacji na temat tego, co fc -e faktycznie robi!
Marco
@Marco: Przepraszam, nie rozumiem o co ci chodzi. Dałem lato, co fc -e -robi własnymi słowami. Dokumentacja znajduje się w man zshbuiltins: fc [-e ename] [-LI] [-m match] [old = new ...] [first [last]] (...) W przeciwnym razie wywoływana jest nazwa programu edytora dla pliku zawierającego te wydarzenia historyczne. (...)
mpy
@mpy Przepraszamy, ten komentarz nie był skierowany do Ciebie! manDokumentacji ( zshallna przykład) nie wyjaśnia, co fc -erobi, co było frustrujące. Wspomina fc -e, ale nie mówi, co robi.
Marco
BTW, masz nie podano podsumowanie tego, co fc -erobi - powiedział pan tylko, że „powinien robić to, co chcesz”.
Marco