Przerzuciłem się całkiem niedawno z Bash na Zsh na Ubuntu i jestem z tego powodu bardzo zadowolony. Jest jednak coś, za czym bardzo tęsknię i nie znalazłem sposobu na osiągnięcie tego samego.
W Bash, ilekroć wpisałem długie polecenie i zauważyłem, że wcześniej musiałem uruchomić coś innego, musiałem to tylko skomentować, jak poniżej:
me@home> #mysuperlongcommand with some arguments
me@home> thecommandIhavetorunfirst #and then: then up up
me@home> #mysuperlongcommand with some arguments #I just need to uncomment it!
Jednak to dość charakterze powtarzającym sytuacja nie jest tak łatwo jak z adresem zsh
, zważywszy #mysuperlongcommand
zostanie uruchomiony jako takie (i skutkuje: zsh: command not found: #mysuperlongcommand
.
command-line
zsh
Rolf
źródło
źródło
set -k
jeśli jest to tylko jednorazowe. Alesetopt
użyłbym wiersza z tej odpowiedzi w moim zshrcużywam
Z instrukcji zsh:
A więc wygląda to tak:
Ponadto, jeśli ustawisz
INTERACTIVE_COMMENTS
opcję (setopt INTERACTIVE_COMMENTS
), będziesz mógł używać komentarzy w interaktywnych powłokach, tak jak jesteś przyzwyczajony.źródło
read -z
iprint -z
, więc w przypadku niektórych skryptów i plików tymczasowych można. Ale wtedy niestandardowy widżet zle do zapisywania wiersza poleceń w pliku tymczasowym może być prostszy, a udostępniona historia będzie jeszcze prostsza.Często to robię. To, co robię, to wycinanie długiego polecenia, wykonywanie polecenia, które musi iść jako pierwsze, a następnie wklejanie długiego polecenia z powrotem. To proste: CTRL + U wycina bieżące polecenie do bufora, CTRL + Y wkleja je. Działa w zsh i bash.
źródło
Oprócz tego
setopt interactivecomments
, co zasugerował @Lajnold, możesz również dodać coś podobnego do poniższego, aby zapobiec zapisywaniu niektórych komentarzy w historii (z /superuser/352788/how-to-prevent-a- polecenie-w-powłoce-z-zapisania-w-historii ):To zastępuje wbudowaną funkcję ZSH zshaddhistory ():
Dla porównania, jest to domyślna zshaddhistory () http://zsh.sourceforge.net/Doc/Release/Functions.html
źródło