Hendrik Bunke wrote:
> kleine Frage am Rande. Auf Arbeit sitze ich an einem
> Ubuntu-Rechner und stelle zu meiner Überraschung fest, dass die
> zsh hier die filename-expansion auch bei scp-Kommandos
> beherrscht.
Du meinst, die remote-Namen werden komplettiert (Expansion
ist etwas anderes als Completion)? Das kann man einrich-
ten, wenn man will. Funktionieren kann das natürlich nur,
wenn Du z.B. per ssh-agent auf den Remote-host kommst, da
Du sicherlich nicht bei jedem Drücken der Tab-Taste ein
Passwort oder eine Passphrase eingeben möchtest.
> Das ist natürlich überaus praktisch. Nur leider
> funktioniert das bei meinen FreeBSD-Rechnern nicht.
Dann hast Du's auf dem freeBSD-Rechner nicht konfiguriert.
Von allein tut das die zsh ja nicht; das hat nichts mit
dem Betriebssystem zu tun.
Wenn Du alle Standard-Completions haben willst, die die
zsh so mitbringt (dazu gehört auch ssh und scp), gib die
folgenden beiden Zeilen ein:
autoload compinit
compinit
bzw. schreib diese Zeilen in Deine ~/.zshrc, damit es
automatisch für jede interaktive Shell ausgeführt wird.
Einige dieser Completions sind allerdings nicht besonders
portabel programmiert. Zum Beispiel funktioniert die für
man(1) bei mir nicht. Ich habe stattdessen folgendes in
meiner ~/.zshrc, um Manpages zu komplettieren:
_WHATISFILES=$(
for i in ${=$(manpath 2>/dev/null):gs/:/ /}; do
if [[ -f $i/whatis ]]; then
echo "$i/whatis"
fi
done
)
_list_mans() {
set -A reply $(
awk '{
for (i = 1; i <= NF; i++)
if ($i ~ "^'"$1"'.*\\(") {
word = $i
sub(/\(.*/, "", word)
print word
}
}' $_WHATISFILES </dev/null
)
}
if [[ -n "$_WHATISFILES" ]]; then
compctl -K _list_mans man _man_wrap
fi
Und folgender Trick ermöglicht es, dass man die übliche
Syntax für Sections verwenden kann, d.h. man kann
»man exit(3)« eingeben (stat »man 3 exit«).
_man_wrap()
{
setopt localoptions
unsetopt ksharrays
local i=1
while [[ $i -le $# ]]; do
if [[ "${argv[$i]}" == *"("[0-9nl]*")" ]]; then
argv[$i]=("${${1##*\(}%\)}" "${1%%\(*}")
fi
i=$(( $i + 1 ))
done
command man "$@"
}
alias man='noglob _man_wrap'
Gruß
Olli
-- Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M. Handelsregister: Registergericht Muenchen, HRA 74606, Geschäftsfuehrung: secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün- chen, HRB 125758, Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart FreeBSD-Dienstleistungen, -Produkte und mehr: http://www.secnetix.de/bsd "I have stopped reading Stephen King novels. Now I just read C code instead." -- Richard A. O'Keefe To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Wed 26 Sep 2007 - 15:47:32 CEST