⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paco_bash_completion

📁 About: Paco (pacKAGE oRGANIZER) is a simple, yet powerful tool to aid package management when insta
💻
字号:
#-------------------------------------------------------------------------------# pacKAGE oRGANZIER bash completion# Copyright 2006 Christian Schneider <mail@chrschn.de># License: GNU GPL v2 or later#-------------------------------------------------------------------------------## This file provides bash completion support for paco.# # It should be copied into directory /etc/bash_completion.d/ to be operative.# Also, the file /etc/bash_completion must exist, and ~/.bashrc has to contain# some additional commands to activate the bash completion support, more or less# thusly:## 8<---------------------------------------#	# Enable bash completion#	if [ -f /etc/bash_completion ]; then#		source /etc/bash_completion#	fi# --------------------------------------->8## Paco bash completion means that, for example, if you type:##	$ paco <TAB> <TAB>## bash will print a list of all packages logged in the paco database.# And if you type:##	$ paco -- <TAB> <TAB>## bash will print a list of all available long options for paco.##-------------------------------------------------------------------------------## For more information about programmable shell completion, read the# Ian Macdonald's excellent guide "Working more productively with bash 2.x/3.x":##	--> http://www.caliban.org/bash/index.shtml##-------------------------------------------------------------------------------# VERSION: 0.1 (February 2006)# VERSION: 0.2 (June 2007)#	- Removed option --variable#	- Added options -B and --ignore-shared# VERSION: 0.3 (July 2007)#	- Removed option --expand#	- Added option --log-missing#-------------------------------------------------------------------------------# vim:ts=4:ft=sh:have paco &&_paco(){	local prev cur pkgs longopts longopts_eq shortopts sorts vars vars_complete var	# long options:	longopts='--all \		--append \		--batch \		--block-size=SIZE \		--configure-options \		--date \		--dirname \		--exclude=DIR \		--log-missing \		--files \		--help \		--ignore-errors \		--include=DIR \		--info \		--kilobytes \		--log \		--logdir=DIR \		--missing-files \		--missing-size \		--no-package-name \		--one-column \		--package=PKG \		--query \		--remove \		--remove-shared \		--reverse \		--shared \		--size \		--skip=DIR \		--sort=WORD \		--symlinks \		--total \		--unlog \		--update \		--verbose \		--version \		--ignore-shared \		--who-shares'	# long options with an equals	longopts_eq='--block-size= \		--exclude= \		--include= \		--logdir= \		--package= \		--skip= \		--sort='	# shrt options:	shortopts='-+ \		-a \		-b \		-B \		-c \		-C \		-d \		-D \		-e \		-E \		-f \		-F \		-h \		-i \		-I \		-k \		-l \		-L \		-m \		-M \		-n \		-o \		-p \		-q \		-r \		-R \		-s \		-t \		-u \		-U \		-v \		-V \		-w \		-y \		-z'	# parameters for the --sort option	sorts="name date time size files missing-size missing-files"	COMPREPLY=()	prev=${COMP_WORDS[COMP_CWORD-1]}	cur=${COMP_WORDS[COMP_CWORD]}	# first parameter on line and not an option?	if [ $COMP_CWORD -eq 1 ] && [[ "$cur" != -* ]]; then		pkgs=$(paco -a 2>/dev/null)		COMPREPLY=( $(compgen -W "$pkgs" $cur) )		return 0	fi		# handle completion based on previous long option	# ignore previous parameter if it is a long option with a "="	if [ $COMP_CWORD -ge 1 ] && [[ "$prev" == --* ]]; then		# expand according to prev parameter		case "${prev#--}" in				block-size)				# No completion available, integer expected				return 0				;;						exclude | include | logdir | skip) 				_filedir -d				return 0				;;			sort)				COMPREPLY=( $(compgen -W "$sorts" $cur) )				return 0				;;			# This parameters expect a package			update | unlog | date | size | missing-size | \			files | missing-files | shared | who-shares | symlings | size | \			info | configure-options | package)				pkgs=$(paco -a 2>/dev/null)				COMPREPLY=( $(compgen -W "$pkgs" $cur) )				return 0				;;			query | who-shares)				_filedir				return 0				;;		esac	fi	# handle completion based on previous short option	if [ $COMP_CWORD -ge 1 ] && [[ "$prev" == -* ]] && [[ "$prev" != --* ]]; then			 		# expand according to prev parameter		case "${prev#-}" in						*u* | *U* | \			*F* | *M* | *C* | *d* | *d* | *n* | \			*f* | *m* | *c* | *y* | \			*i* | *o* | *V* | \			*r* | \			*p*)				pkgs=$(paco -a 2>/dev/null)				COMPREPLY=( $(compgen -W "$pkgs" $cur) )				return 0				;;			*q*)				_filedir				return 0				;;			*L* | *e* | *I* | *E*)				_filedir -d				return 0				;;		esac	fi	# Completions on current option. At first we must complete on long options	# expecting a parameter seperated by a "=".	case "$cur" in				# No complete on --block-size option possible		--block-size=*)			return 0			;;			# Complete on --{in,ex}clude, --logdir, --skip option		--exclude=* | --include=* | --logdir=* | --skip=*)			cur=${cur#*=}			_filedir			return 0			;;			# Complete on --package option		--package=*)			pkgs=$(paco -a 2>/dev/null)			COMPREPLY=( $(compgen -W "$pkgs" -- ${cur#*=}) )			return 0			;;			# Complete on --sort option		--sort=*)			COMPREPLY=( $(compgen -W "$sorts" -- ${cur#*=}) )			return 0			;;			# Expand some options together with an equals		--bl* | --exc* | --inc* | --logd* | --p* | --sk* | --so*)			# Generate dummy long options with an equals and two choices			vars_complete=""			for var in $longopts_eq; do 				vars_complete="$vars_complete $(echo "${var}1 ${var}2" | grep "^$cur")"			done			COMPREPLY=( $vars_complete )			return 0			;;			# complete on all unspecific options		-*)			COMPREPLY=( $(compgen -W "$shortopts $longopts" -- $cur) )			return 0			;;	esac	# No completions found. First check if we have a command that we can complete	# on, like "make"	if [ -n "$prev" ] && [[ "$prev" != -* ]]; then		# Extract the function name for the completion function on that command			var=$(complete -p $prev 2>/dev/null)				if [ -z "${var/*-F *}" ]; then			var=${var##*-F }			var=${var%% *([_a-zA-Z0-9])}			# execute the command			$var		else			_command		fi	else		_command	fi	return 0}[ "$have" ] && complete -F _paco paco

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -