From c1e87808acd58618fe3e7fdeda6eb731a3708a65 Mon Sep 17 00:00:00 2001 From: Felix Rosencrantz Date: Sat, 19 Apr 2003 17:23:45 +0000 Subject: 18455: Screen completion function --- Completion/Unix/Command/.distfiles | 2 +- Completion/Unix/Command/_screen | 83 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 Completion/Unix/Command/_screen (limited to 'Completion') diff --git a/Completion/Unix/Command/.distfiles b/Completion/Unix/Command/.distfiles index da774ef25..1587bf64f 100644 --- a/Completion/Unix/Command/.distfiles +++ b/Completion/Unix/Command/.distfiles @@ -19,5 +19,5 @@ _user_admin _rsync _arping _spamassassin _mtools _ifconfig _fsh _chkconfig _cdcd _irssi _mysqldiff _sccs _netcat _larch _texinfo _figlet _elinks _tidy _global _global_tags _ant _lsof _mt _xmlsoft -_perforce _python _antiword +_perforce _python _antiword _screen ' diff --git a/Completion/Unix/Command/_screen b/Completion/Unix/Command/_screen new file mode 100644 index 000000000..d8c70cb16 --- /dev/null +++ b/Completion/Unix/Command/_screen @@ -0,0 +1,83 @@ +#compdef screen +#Generated by Felix Rosencrantz + + local context state line scr_cmds + scr_cmds=( + acladd aclchg acldel aclgrp aclumask + activity addacl allpartial at attrcolor + autodetach autonuke backtick bce bell_msg + bind bindkey break breaktype bufferfile + c1 caption charset chdir clear + colon command compacthist console copy + copy_reg crlf debug defautonuke defbce + defbreaktype defc1 defcharset defencoding defescape + defflow defgr defhstatus defkanji deflog + deflogin defmode defmonitor defobuflimit defscrollback + defshell defsilence defslowpaste defutf8 defwrap + defwritelock defzombie detach digraph dinfo + displays dumptermcap echo encoding escape + eval exec fit flow focus + gr hardcopy hardcopy_append hardcopydir hardstatus + height help history hstatus ignorecase + info ins_reg kill lastmsg license + lockscreen log logfile login logtstamp + mapdefault mapnotnext maptimeout markkeys maxwin + meta monitor msgminwait msgwait multiuser + nethack next nonblock number obuflimit + only other partial password paste + pastefont pow_break pow_detach pow_detach_msg prev + printcmd process quit readbuf readreg + redisplay register remove removebuf reset + resize screen scrollback select sessionname + setenv setsid shell shelltitle silence + silencewait sleep slowpaste sorendition source + split startup_message stuff su term + termcap termcapinfo terminfo time title + unsetenv utf8 vbell vbell_msg vbellwait + 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 .sockname instead of ...' \ + "-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 as a screen command in the specified session.]:screencmd:(${scr_cmds[@]})' + +case $state in + "sessionname") + # Complete folder 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 +;; +esac -- cgit 1.4.1