Hi, On Mon, Jun 16, 2008 at 10:47:21PM +0200, Martin Steigerwald wrote: > Am Montag 16 Juni 2008 schrieb Sebastian Harl: > > Nachdem ich weiss, dass mindestens noch einer in der LUSC die Shell > > zsh verwendet und diese an Features ja geradezu ueberladen ist, starte > > ich hiermit einen Thread, der hoffentlich im Laufe der Zeit ein paar > > nette Features von zsh sammelt - hoffe also auf Beitraege von anderen! > > Auch auf das Risiko hin, dass Einiges oder gar Alles bereits bekannt ist: Dieses Risiko hat man immer, wenn man Infos verbreitet... ;-) > # Optionen > setopt sharehistory autocd beep extendedglob nomatch correct Hmm... da hab ich fast ueberall das Gegenteil davon... ;-) * sharehistory: siehe unten * autocd: siehe unten * beep: nervt mich ehrlich gesagt nur - ich hab das pcspkr Kernel-Modul in der Regel in der Blacklist ;-) * extendedglob: Sehr nett, hab ich mich aber noch net weiter eingelesen * nomatch: Das verhindert Dinge wie "scp host:*.foo ." und ist deshalb bei mir aus * correct: Sehr nettes Feature, auch wenn ich mich noch nicht ganz dran gewoehnt hab ;-) > Insbesondere finde ich autocd interessant: > > martin@shambala> Amiga ~ > martin@shambala> System ~/Amiga Ich mag Dinge meist lieber explizit - das ist hier der Fall. Ich kann mir aber durchaus vorstellen, dass man dieses Feature mag. Ich finde jedoch die "auto_pushd" Option sehr nett. Das setzt im Prinzip "cd" mit "pushd" gleich, wodurch man sich jederzeit mit "popd" rueckwaerts durch die zuletzt besuchten Verzeichnisse schlaengeln kann. > Und "sharehistory"... ist etwas gewöhnungsbedürftig, aber ich mags im > Grunde. Damit teilen sich alle Z-Shells eines Benutzers auf dem gleichen > System eine History und es gibt keinen History-Überschreib-Ärger beim > Beenden mehrerer Shells. Ich komme also mit Strg-R in einem Shell-Fenster > an Befehle ran, die ich in einem anderen getippt habe. Beim Blättern mit > der Hochtaste ist das manchmal verwirrend. Wär vielleicht witzig das nur > für Strg-R einschalten zu können. Das hab ich mal eine Weile verwendet, dann hat es mich aber genervt und ich hab's wieder abgeschaltet. Ich arbeite haeufig in versch. Shells an versch. Dingen, da ist das sehr unpraktisch. Ausserdem habe ich zum Entwicklen meist mindestens zwei Shells mit versch. "Aufgaben", also z.B. eine, um make aufzurufen, eine, um Dateien zu bearbeiten. Da finde ich es sehr nervig, wenn ich mit nicht zu meinem letzten make Aufruf zurueck komme, sondern mich erst durch ein paar vim Aufrufe durchblaettern muss - und "-r make" sind doch deutlich mehr Tastenanschlaege als ""... Ich habe statt dessen mittlerweile "inc_append_history" gesetzt. Das schreibt die History (im Prinzip genauso wie "share_history") sofort in die History-Datei, liest aber neue Eintraege nicht gleich wieder raus. Laut der Doku von "append_history" soll man in diesem Fall mit "fc -RI" die komplette History (also inkl. der Eintraege von anderen Instanzen) einlesen koennen - das funktioniert aber bei mir bislang irgendwie net... > martin@shambala> grep -B1 PROMPT .zshrc ~ > # Prompt > PROMPT="%(!,,%n@)%m> " > -- > # Rechter Prompt > RPROMPT=" %~%(?,,#%?)" > > komme ich im Moment wieder ab. Das ist einfach beim Cut&Paste blöde... > wobei wenn ich das Fenster kleiner 70 Zeichen mache, gehts noch > einigermaßen. Wenn du die "transient_rprompt" Option setzt, dann taucht $RPROMPT nur in der aktuellen Zeile auf: % echo foo foo % bar zsh: correct 'bar' to 'bzr' [nyae]? a % 2279 | 12:34PM Damit finde ich das wieder ein sehr huebsches Feature. > Was macht ihr Prompt-mäßig so? Mein Prompt wird folgendermassen gestaltet: autoload colors colors g="%{$fg[green]%}" y="%{$fg[yellow]%}" b="%{$fg[blue]%}" r="%{$reset_color%}" PROMPT="%B$g%n$r@%B$y%m$r:%B$b%1~%b$r%# " RPROMPT="%B%!%b | %B%t%b" > Witzig ist natürlich (auf den rechten Prompt achten): > > martin@shambala> true ~ > martin@shambala> false ~ > martin@shambala> find /toller-fehler ~#1 > find: "/toller-fehler": Datei oder Verzeichnis nicht gefunden > martin@shambala> ls -lhgoijekjadng ~#1 > ls: Ungültige Option -- j > »ls --help« gibt weitere Informationen. > martin@shambala> ~#2 > martin@shambala> true ~#2 > martin@shambala> ~ Hmja... ich glaube, dass ist deutlich nuetzlicher, als sich die Nummer des aktuellen History-Eintrags anzeigen zu lassen. Ich glaub, dass muss ich mir noch mal genauer anschauen, was man da noch fuer Moeglichkeiten hat :-) > Die zsh kann rekursives Matching: Das steht noch auf meiner TODO-Liste, mir das mal genauer anzusehen ;-) Noch weitere Optionen, die ich sehr praktisch finde: * auto_list, auto_menu: bei mehreren Completion-Moeglichkeiten wir nach ein Menue angezeigt, durch das man sich mit den Pfeiltasten bewegen kann. * equals: =foo wird ersetzt mit `which foo`, falls foo im Pfad existiert Gruss, Sebastian -- Sebastian "tokkee" Harl +++ GnuPG-ID: 0x8501C7FC +++ http://tokkee.org/ Those who would give up Essential Liberty to purchase a little Temporary Safety, deserve neither Liberty nor Safety. -- Benjamin Franklin