mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			112 lines
		
	
	
	
		
			5.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
	
		
			5.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #compdef less -value-,LESS,-default- -value-,LESSCHARSET,-default-
 | |
| 
 | |
| local curcontext="$curcontext" state line expl ret=1
 | |
| local -a files
 | |
| 
 | |
| case $service in
 | |
|   *LESSCHARSET*)
 | |
|     _wanted charsets expl 'character set' compadd ascii iso8859 latin1 latin9 \
 | |
|         dos ebcdic IBM-1047 koi8-r next utf-8
 | |
|     return
 | |
|   ;;
 | |
|   *LESS*)
 | |
|     compset -q
 | |
|     words=( fake "$words[@]" )
 | |
|     (( CURRENT++ ))
 | |
|   ;;
 | |
|   *)
 | |
|     files=( '*:file:_files' )
 | |
|   ;;
 | |
| esac
 | |
| 
 | |
| if compset -P '+[-0-9]#'; then
 | |
|   _describe 'less command' '(
 | |
|     g:goto\ line
 | |
|     F:scroll\ to\ end\ and\ keep\ reading\ file
 | |
|     G:go\ to\ end\ of\ file
 | |
|     %:go\ to\ position\ in\ file 
 | |
|     p:go\ to\ position\ in\ file 
 | |
|   )'
 | |
|   return
 | |
| fi
 | |
| 
 | |
| _arguments -S -s -A "[-+]*"  \
 | |
|   '(-? --help)'{-\?,--help}'[display summary of less commands]' \
 | |
|   '(-a --search-skip-screen)'{-a,--search-skip-screen}'[begin forward searches after last displayed line]' \
 | |
|   '(-b --buffers)'{-b+,--buffers=}'[specify amount of buffer space used for each file]:buffer space (kilobytes)' \
 | |
|   '(-B --auto-buffers)'{-B,--auto-buffers}"[don't automatically allocate buffers for pipes]" \
 | |
|   '(-C --CLEAR-SCREEN -c --clear-screen)'{-c,--clear-screen}'[repaint screen instead of scrolling]' \
 | |
|   '(-c --clear-screen -C --CLEAR-SCREEN)'{-C,--CLEAR-SCREEN}'[clear screen before repaints]' \
 | |
|   '(-d --dumb)'{-d,--dumb}'[suppress error message if terminal is dumb]' \
 | |
|   '(-e -E --quit-at-eof --QUIT-AT-EOF)'{-e,--quit-at-eof}'[exit the second time end-of-file is reached]' \
 | |
|   '(-e -E --quit-at-eof --QUIT-AT-EOF)'{-E,--QUIT-AT-EOF}'[exit when end-of-file is reached]' \
 | |
|   '(-f --force)'{-f,--force}'[force opening of non-reqular files]' \
 | |
|   '(-F --quit-if-one-screen)'{-F,--quit-if-one-screen}'[exit if entire file fits on first screen]' \
 | |
|   '(-G --HILITE-SEARCH -g --hilite-search)'{-g,--hilite-search}'[highlight only one match for searches]' \
 | |
|   '(-g --hilite-search -G --HILITE-SEARCH)'{-G,--HILITE-SEARCH}'[disable highlighting of search matches]' \
 | |
|   '(-h --max-back-scroll)'{-h+,--max-back-scroll=}'[specify backward scroll limit]:backward scroll limit (lines)' \
 | |
|   '(-I --IGNORE-CASE -i --ignore-case)'{-i,--ignore-case}'[ignore case in searches that lack uppercase]' \
 | |
|   '(-i --ignore-case -I --IGNORE-CASE)'{-I,--IGNORE-CASE}'[ignore case in all searches]' \
 | |
|   '(-j --jump-target)'{-j+,--jump-target}'[specify screen position of target lines]:position (line)' \
 | |
|   '(-J --status-column)'{-J,--status-column}'[display status column on the left]' \
 | |
|   \*{-k+,--lesskey-file=}'[use specified lesskey file]:lesskey file:_files' \
 | |
|   '(-L --no-lessopen)'{-L,--no-lessopen}'[ignore the LESSOPEN environment variable]' \
 | |
|   '(-M --LONG-PROMPT -m --long-prompt)'{-m,--long-prompt}'[prompt verbosely]' \
 | |
|   '(-m --long-prompt -M --LONG-PROMPT)'{-M,--LONG-PROMPT}'[prompt very verbosely]' \
 | |
|   '(-N --LINE-NUMBERS -n --line-numbers)'{-n,--line-numbers}"[don't keep track of line numbers]" \
 | |
|   '(-n --line-numbers -N --LINE-NUMBERS)'{-N,--LINE-NUMBERS}'[show line numbers]' \
 | |
|   '(* -O --LOG-FILE -o --log-file)'{-o+,--log-file=}'[copy input to file]:file:_files' \
 | |
|   '(* -o --log-file -O --LOG-FILE)'{-O+,--LOG-FILE=}'[copy input to file, overwriting if necessary]:file:_files' \
 | |
|   '(-p --pattern)'{-p+,--pattern=}'[start at specified pattern]:pattern' \
 | |
|   \*{-P+,--prompt=}'[specify prompt format]:prompt:->prompts' \
 | |
|   '(-Q --QUIET --SILENT -q --quiet --silent)'{-q,--quiet,--silent}'[never use bell]' \
 | |
|   '(-q --quiet --silent -Q --QUIET --SILENT)'{-Q,--QUIET,--SILENT}'[limit use of bell]' \
 | |
|   '(-r -R --raw-control-chars --RAW-CONTROL-CHARS)'{-r,--raw-control-chars}'[display raw control characters]' \
 | |
|   '(-r -R --raw-control-chars --RAW-CONTROL-CHARS)'{-R,--RAW-CONTROL-CHARS}'[display control chars; keep track of screen effects]' \
 | |
|   '(-s --squeeze-blank-lines)'{-s,--squeeze-blank-lines}'[squeeze consecutive blank lines down to one]' \
 | |
|   '(-S --chop-long-lines)'{-S,--chop-long-lines}'[truncate long lines instead of folding]' \
 | |
|   '(-t --tag)'{-t+,--tag=}'[edit file containing tag]:tag:->tags' \
 | |
|   '(-T --tag-file)'{-T+,--tag-file=}'[specify tags file]:tags file:_files' \
 | |
|   '(-u --underline-special)'{-u,--underline-special}'[send backspaces and carriage returns to the terminal]' \
 | |
|   '(-U --UNDERLINE-SPECIAL)'{-U,--UNDERLINE-SPECIAL}'[treat backspaces, tabs and carriage returns as control characters]' \
 | |
|   '(* -)'{-V,--version}'[display version information]' \
 | |
|   '(-W --HILITE-UNREAD -w --hilite-unread)'{-w,--hilite-unread}'[highlight first unread line after forward page]' \
 | |
|   '(-w --hilite-unread -W --HILITE-UNREAD)'{-W,--HILITE-UNREAD}'[highlight first unread line after forward movement]' \
 | |
|   '(-x --tabs)'{-x+,--tabs=}'[set tab stops]:tab stops' \
 | |
|   '(-X --no-init)'{-X,--no-init}'[disable use of terminal init string]' \
 | |
|   '--no-keypad[disable use of keypad terminal init string]' \
 | |
|   '(-y --max-forw-scroll)'{-y,--max-forw-scroll}'[specify forward scroll limit]' \
 | |
|   '(-z --window)'{-z+,--window=}'[specify scrolling window size]:lines' \
 | |
|   '(-\" --quotes)'{-\"+,--quotes=}'[change quoting character]:quoting characters' \
 | |
|   '(-~ --tilde)'{-~,--tilde}"[don't display tildes after end of file]" \
 | |
|   '(-\# --shift)'{-\#+,--shift=}"[specify amount to move when scrolling horizontally]:number" \
 | |
|   "$files[@]" && ret=0
 | |
| 
 | |
| 
 | |
| if [[ -n "$state" ]]; then
 | |
|   case $state in
 | |
|     prompts)
 | |
|       if compset -P \?; then
 | |
| 	_message -e prompt
 | |
|       else
 | |
| 	_describe 'prompt' '(
 | |
| 	  s:short\ prompt
 | |
| 	  m:medium\ prompt
 | |
| 	  M:long\ prompt
 | |
| 	  h:help\ screen\ prompt
 | |
| 	  \=:\=\ command\ prompt
 | |
| 	  w:waiting\ prompt
 | |
| 	)' && ret=0
 | |
|       fi
 | |
|     ;;
 | |
|     tags)
 | |
|       if (( $+LESSGLOBALTAGS )); then
 | |
|         _global_tags
 | |
|       else
 | |
|         _ctags_tags
 | |
|       fi
 | |
|     ;;
 | |
|   esac
 | |
| fi
 | |
| 
 | |
| return ret
 |