Używam tcsh. bash, zsh i inne sugestie tutaj nie pomogą.
Mam kilka aliasów, które są nazwane tak samo jak inne polecenie, więc jeśli to zrobiłem, wpisanie tego samego zrobiłoby teraz coś innego.
Przez większość czasu chcę aliasu polecenia, dlatego je mam. Czasami jednak chcę niezmienne polecenie.
Czy bez prostego rozdzielania i redefiniowania polecenia istnieje prosty sposób, aby powiedzieć tcsh, aby zamiast tego używał polecenia niezmienionego?
Na przykład vi jest aliasowany do vima, ale czasami chcę po prostu używać vi. cd jest aliasowany, aby zmienić tytuł okna, ale czasem chcę go zostawić w spokoju.
Oczywiście mógłbym wpisać / usr / bin / vi, ale ponieważ cd jest wbudowanym poleceniem powłoki, nie ma odpowiednika. Czy istnieje ogólne rozwiązanie?
/usr/bin
. Ale instrukcja potwierdza, że ukośnik odwrotny powinien działać ... i okazuje się, że działa, ale musisz zacytować wewnętrzny charakter, aby zapobiec aliasingowi, jednocześnie obsługując wbudowane funkcje. BTW Jeśli próbujesz coś zrobić pocd
, przyjrzećalias cwdcmd
siętcsh(1)
; oszczędza to również konieczności radzenia sobie zpushd
/popd
itd.command
jest zwykle wbudowany w powłoki POSIX i musi być przeznaczonycommand -[Vv]
. Użycie odwrotnego ukośnika w celu ominięcia aliasu działa tylko dla zwykłych poleceń, a nie dla wbudowanych (ponieważ wbudowanych nie można cytować w (t) csh bardziej niż aliasy).poprzedź swoje polecenie słowem „polecenie”. Dawny.
źródło
Nie twórz aliasów, które są wbudowane w powłokę Clobbera. Twoje życie będzie znacznie łatwiejsze . Pozostało wiele kombinacji klawiszy, spróbuj
cw
zmienić alias tytułu okna :)Edycja: Dwustopniowe rozwiązanie do naprawy aliasów, które nie są twoje:
cd
do czegoś innego niż polecenie zmiany katalogu i poproś o jej przeniesienie do wybranej kolumny lokalnej gazety. Nie powinien wykonywać pracy, w której mógłby wymuszać takie pomysły na skorupy innych ludzi!echo unalias cd >> ~/.bashrc
źródło
unalias cd
.cd
Alias może być ustawienie tytuł i zmienia katalog. To dość powszechna praktyka sprzedprecmd
iPROMPT_COMMAND
.