diff options
author | Felix Rosencrantz <f_rosencrantz@users.sourceforge.net> | 2003-04-22 17:32:40 +0000 |
---|---|---|
committer | Felix Rosencrantz <f_rosencrantz@users.sourceforge.net> | 2003-04-22 17:32:40 +0000 |
commit | 537f405ca1816d7a800026823bfa439886aa85a3 (patch) | |
tree | d3c5000e9669ebdd2fc669bc5e0155e1cbc16616 /Completion/Unix/Command/_screen | |
parent | c5e5b124ba57d4be32efabb983d400bc82d6b63b (diff) | |
download | zsh-537f405ca1816d7a800026823bfa439886aa85a3.tar.gz zsh-537f405ca1816d7a800026823bfa439886aa85a3.tar.xz zsh-537f405ca1816d7a800026823bfa439886aa85a3.zip |
18459: Completion/Unix/Command/_screen: fix up suggestions from Oliver, and other changes.
Diffstat (limited to 'Completion/Unix/Command/_screen')
-rw-r--r-- | Completion/Unix/Command/_screen | 80 |
1 files changed, 39 insertions, 41 deletions
diff --git a/Completion/Unix/Command/_screen b/Completion/Unix/Command/_screen index d8c70cb16..e50feca05 100644 --- a/Completion/Unix/Command/_screen +++ b/Completion/Unix/Command/_screen @@ -1,8 +1,9 @@ #compdef screen #Generated by Felix Rosencrantz - local context state line scr_cmds - scr_cmds=( +local context state line scr_cmds +typeset -A opt_args +scr_cmds=( acladd aclchg acldel aclgrp aclumask activity addacl allpartial at attrcolor autodetach autonuke backtick bce bell_msg @@ -37,47 +38,44 @@ verbose version wall width windowlist windows wrap writebuf writelock xoff xon zombie - ) +) - typeset -A opt_args - _arguments \ - "-a[Force all capabilities into each window's termcap.]" \ - '-A:Adapt all windows to the new display width & height.' \ - "-c:Read configuration file instead of '.screenrc'.:_files -/" \ - '-d:Detach the elsewhere running screen (with -r: reattach here).:->sessionname' \ - '-dmS:Start as daemon: Screen session in detached mode.' \ - '-D:Detach and logout remote (with -r: reattach here).' \ - '-e:Change command characters.' \ - '-f-:Flow control on, -fn = off, -fa = auto.:((n\:Flow\ conrol\ off a\:Flow\ conrol\ auto))' \ - '-h:Set the size of the scrollback history buffer.' \ - '-i[Interrupt output sooner when flow control is on.]' \ - '-l[Login mode on (update /var/run/utmp), -ln = off.]' \ - '-list[Do nothing, just list our SockDir.]' \ - '-ls[Do nothing, just list our SockDir.]' \ - "-L[Terminal's last character can be safely updated.]" \ - '-m[ignore $STY variable, do create a new screen session.]' \ - '-O[Choose optimal output rather than exact vt100 emulation.]' \ - '-p:Preselect the named window if it exists.' \ - '-q[Quiet startup. Exits with non-zero return code if unsuccessful.]' \ - '-r[Reattach to a detached screen process.]:Handling Tag sessionname:->sessionname' \ - '-R[Reattach if possible, otherwise start a new session.]' \ - '-s:Shell to execute rather than $SHELL.' \ - '-S:Name this session <pid>.sockname instead of <pid>.<tty>.<host>.' \ - "-t:Set title. (window's name)." \ - '-T:Use term as $TERM for windows, rather than "screen".' \ - '-U[Tell screen to use UTF-8 encoding.]' \ - '-v[Print screen version.]' \ - '-wipe[Do nothing, just clean up SockDir.]' \ - '-x[Attach to a not detached screen. (Multi display mode).]' \ - '-X[Execute <cmd> as a screen command in the specified session.]:screencmd:(${scr_cmds[@]})' +_arguments \ + "-a[force all capabilities into each window's termcap]" \ + '-A[adapt all windows to the new display width & height]' \ + "-c[read configuration file instead of '.screenrc']:config file:_files -/" \ + '-d[detach the elsewhere running screen (with -r: reattach here)]:session name:->sessionname' \ + '-dmS[start as daemon, screen session in detached mode]' \ + '-D[detach and logout remote (with -r: reattach here)]' \ + '-e[change command characters]:command characters:' \ + '-f-[set flow control]:flow control:((n\:flow\ control\ off a\:Flow\ control\ auto \:Flow\ control\ on))' \ + '-h[set the size of the scrollback history buffer]:buffer size:' \ + '-i[interrupt output sooner when flow control is on]' \ + '(-l)-ln[login mode off (do not update /var/run/utmp)]' \ + '(-ln)-l[login mode on (update /var/run/utmp)]' \ + '(-)'{-ls,-list}'[list sessions/socket directory]' \ + "-L[terminal's last character can be safely updated]" \ + '-m[ignore $STY variable, do create a new screen session]' \ + '-O[choose optimal output rather than exact vt100 emulation]' \ + '-p[preselect the named window]:window number or name:(( \=\:windowlist -\:blank\ window \:window\ number))' \ + '-q[quiet startup. exits with non-zero return code if unsuccessful]' \ + '-r[reattach to a detached screen process]:session name:->sessionname' \ + '-R[reattach if possible, otherwise start a new session]' \ + '-s[shell to execute rather than $SHELL]:shell name: _command_names -e' \ + '-S[name this session <pid>.sockname instead of <pid>.<tty>.<host>]:session name:' \ + "-t[set title(window's name)]:title:" \ + '-T[use term as $TERM for windows, rather than "screen"]:terminal type:_terminals' \ + '-U[tell screen to use UTF-8 encoding]' \ + '(-)-v[print screen version]' \ + '(-)-wipe[do nothing, clean up SockDir]' \ + '-x[attach to a not detached screen. (Multi display mode).]' \ + '-X[Execute <cmd> as a screen command in the specified session.]:screencmd:(${scr_cmds[@]})' case $state in - "sessionname") - # Complete folder names. + sessionname) + # Complete session names local screendir - - screendir=(`screen -ls | grep Socket | sed -n -e 's/\.$//' -e '$p' | awk '{print $NF;}'`) - - _wanted files expl 'screen process' _path_files -W screendir -;; + screendir=( ${${${(M)${(f)"$(_call_program screen-session $words[1] -ls)"}:#*Socket*}%.}##* } ) + _wanted screen-session expl 'screen process' _path_files -W screendir + ;; esac |