📄 bash_completion
字号:
return 0 fi # possible completion when setting property values if [[ $isPsCmd && $prop && ( ! $val || $stat = 'val' ) ]] then # ' is a reminder for an arbitrary value local values="\' --file" case $prop in svn:keywords) # just a subset? values="Id Rev URL Date Author \' $SVN_BASH_KEYWORDS" ;; svn:executable|svn:needs-lock) # hmmm... canonical value * is special to the shell. values='\\*' ;; svn:eol-style) values='native LF CR CRLF' ;; svn:mime-type) # could read /etc/mime.types if available. overkill. values="text/ text/plain text/html text/xml text/rtf image/ image/png image/gif image/jpeg image/tiff audio/ audio/midi audio/mpeg video/ video/mpeg video/mp4 application/ application/octet-stream $SVN_BASH_MIME_TYPE" ;; esac COMPREPLY=( $( compgen -W "$values" -- $cur ) ) # special case for --file... return even if within an option [[ ${COMPREPLY} ]] && return 0 fi # maximum number of additional arguments expected in various forms case $cmd in merge) nExpectArgs=3 ;; copy|cp|move|mv|rename|ren|export|import) nExpectArgs=2 ;; switch|sw) [[ ! $hasRelocateOpt ]] && nExpectArgs=2 ;; help|h) nExpectArgs=0 ;; --version) nExpectArgs=0 ;; esac # the maximum number of arguments is reached for a command if [[ $nExpectArgs && $nargs -gt $nExpectArgs ]] then # some way to tell 'no completion at all'... is there a better one? # Do not say 'file completion' here. echo -en "\a" COMPREPLY=( '' ) return 0 fi # if not typing an option, # then fallback on ordinary filename expansion if [[ $cur != -* || $stat = 'onlyarg' ]] ; then return 0 fi # otherwise build possible options for the command pOpts="--username --password --no-auth-cache --non-interactive" mOpts="-m --message -F --file --encoding --force-log" rOpts="-r --revision" qOpts="-q --quiet" nOpts="-N --non-recursive" cmdOpts= case $cmd in --version) cmdOpts="$qOpts" ;; add) cmdOpts="--auto-props --no-auto-props --force --targets \ --no-ignore $nOpts $qOpts" ;; blame|annotate|ann|praise) cmdOpts="$rOpts $pOpts -v --verbose --incremental --xml --force" ;; cat) cmdOpts="$rOpts $pOpts" ;; checkout|co) cmdOpts="$rOpts $qOpts $nOpts $pOpts --ignore-externals" ;; cleanup) cmdOpts="--diff3-cmd" ;; commit|ci) cmdOpts="$mOpts $qOpts $nOpts --targets --editor-cmd $pOpts \ --no-unlock" ;; copy|cp) cmdOpts="$mOpts $rOpts $qOpts --editor-cmd $pOpts" ;; delete|del|remove|rm) cmdOpts="--force $mOpts $qOpts --targets --editor-cmd $pOpts" ;; diff|di) cmdOpts="$rOpts -x --extensions --diff-cmd --no-diff-deleted \ $nOpts $pOpts --force --old --new --notice-ancestry \ -c --change --summarize" ;; export) cmdOpts="$rOpts $qOpts $pOpts $nOpts --force --native-eol \ --ignore-externals" ;; help|h|\?) cmdOpts= ;; import) cmdOpts="--auto-props --no-auto-props $mOpts $qOpts $nOpts \ --no-ignore --editor-cmd $pOpts" ;; info) cmdOpts="$pOpts $rOpts --targets -R --recursive \ --incremental --xml" ;; list|ls) cmdOpts="$rOpts -v --verbose -R --recursive $pOpts \ --incremental --xml" ;; lock) cmdOpts="$mOpts --targets --force $pOpts" ;; log) cmdOpts="$rOpts -v --verbose --targets $pOpts --stop-on-copy \ --incremental --xml $qOpts --limit" ;; merge) cmdOpts="$rOpts $nOpts $qOpts --force --dry-run --diff3-cmd \ $pOpts --ignore-ancestry -c --change" ;; mkdir) cmdOpts="$mOpts $qOpts --editor-cmd $pOpts" ;; move|mv|rename|ren) cmdOpts="$mOpts $rOpts $qOpts --force --editor-cmd $pOpts" ;; propdel|pdel|pd) cmdOpts="$qOpts -R --recursive $rOpts $pOpts" [[ $isRevProp || ! $prop ]] && cmdOpts="$cmdOpts --revprop" ;; propedit|pedit|pe) cmdOpts="--encoding --editor-cmd $pOpts --force" [[ $isRevProp || ! $prop ]] && \ cmdOpts="$cmdOpts --revprop $rOpts" ;; propget|pget|pg) cmdOpts="-R --recursive $rOpts --strict $pOpts" [[ $isRevProp || ! $prop ]] && cmdOpts="$cmdOpts --revprop" ;; proplist|plist|pl) cmdOpts="-v --verbose -R --recursive $rOpts --revprop $qOpts \ $pOpts" ;; propset|pset|ps) cmdOpts="$qOpts --targets -R --recursive \ --encoding $pOpts --force" [[ $isRevProp || ! $prop ]] && \ cmdOpts="$cmdOpts --revprop $rOpts" [[ $val ]] || cmdOpts="$cmdOpts -F --file" ;; resolved) cmdOpts="--targets -R --recursive $qOpts" ;; revert) cmdOpts="--targets -R --recursive $qOpts" ;; status|stat|st) cmdOpts="-u --show-updates -v --verbose $nOpts $qOpts $pOpts \ --no-ignore --ignore-externals --incremental --xml" ;; switch|sw) cmdOpts="--relocate $rOpts $nOpts $qOpts $pOpts --diff3-cmd" ;; unlock) cmdOpts="--targets --force $pOpts" ;; update|up) cmdOpts="$rOpts $nOpts $qOpts $pOpts --diff3-cmd \ --ignore-externals" ;; *) ;; esac # add options that are always available whatever the subcommand [[ "$cmd" != "--version" ]] && cmdOpts="$cmdOpts $helpOpts" cmdOpts="$cmdOpts --config-dir" # take out options already given for opt in $options do local optBase # remove leading dashes and arguments case $opt in --*) optBase=${opt/=*/} ;; -*) optBase=${opt:0:2} ;; esac cmdOpts=" $cmdOpts " cmdOpts=${cmdOpts/ ${optBase} / } # take out alternatives and mutually exclusives case $optBase in -v) cmdOpts=${cmdOpts/ --verbose / } ;; --verbose) cmdOpts=${cmdOpts/ -v / } ;; -N) cmdOpts=${cmdOpts/ --non-recursive / } ;; --non-recursive) cmdOpts=${cmdOpts/ -N / } ;; -R) cmdOpts=${cmdOpts/ --recursive / } ;; --recursive) cmdOpts=${cmdOpts/ -R / } ;; -x) cmdOpts=${cmdOpts/ --extensions / } ;; --extensions) cmdOpts=${cmdOpts/ -x / } ;; -q) cmdOpts=${cmdOpts/ --quiet / } ;; --quiet) cmdOpts=${cmdOpts/ -q / } ;; -h) cmdOpts=${cmdOpts/ --help / } ;; --help) cmdOpts=${cmdOpts/ -h / } ;; -r) cmdOpts=${cmdOpts/ --revision / } ;; --revision) cmdOpts=${cmdOpts/ -r / } ;; -c) cmdOpts=${cmdOpts/ --change / } ;; --change) cmdOpts=${cmdOpts/ -c / } ;; --auto-props) cmdOpts=${cmdOpts/ --no-auto-props / } ;; --no-auto-props) cmdOpts=${cmdOpts/ --auto-props / } ;; -m|--message|-F|--file) cmdOpts=${cmdOpts/ --message / } cmdOpts=${cmdOpts/ -m / } cmdOpts=${cmdOpts/ --file / } cmdOpts=${cmdOpts/ -F / } ;; esac # remove help options within help subcommand if [ $isHelpCmd ] ; then cmdOpts=${cmdOpts/ -h / } cmdOpts=${cmdOpts/ --help / } fi done # provide help about available options COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) ) return 0}complete -F _svn -o default svn_svnadmin (){ local cur cmds cmdOpts optsParam opt helpCmds optBase i COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} # Possible expansions, without pure-prefix abbreviations such as "h". cmds='create deltify dump help hotcopy list-dblogs \ list-unused-dblogs load lslocks lstxns recover rmlocks \ rmtxns setlog verify --version' if [[ $COMP_CWORD -eq 1 ]] ; then COMPREPLY=( $( compgen -W "$cmds" -- $cur ) ) return 0 fi # options that require a parameter # note: continued lines must end '|' continuing lines must start '|' optsParam="-r|--revision|--parent-dir|--fs-type" # if not typing an option, or if the previous option required a # parameter, then fallback on ordinary filename expansion helpCmds='help|--help|h|\?' if [[ ${COMP_WORDS[1]} != @($helpCmds) ]] && \ [[ "$cur" != -* ]] || \ [[ ${COMP_WORDS[COMP_CWORD-1]} == @($optsParam) ]] ; then return 0 fi cmdOpts= case ${COMP_WORDS[1]} in create) cmdOpts="--bdb-txn-nosync --bdb-log-keep --config-dir --fs-type" ;; deltify) cmdOpts="-r --revision -q --quiet" ;; dump) cmdOpts="-r --revision --incremental -q --quiet --deltas" ;; help|h|\?) cmdOpts="$cmds -q --quiet" ;; hotcopy) cmdOpts="--clean-logs" ;; load) cmdOpts="--ignore-uuid --force-uuid --parent-dir -q --quiet \ --use-pre-commit-hook --use-post-commit-hook" ;; rmtxns) cmdOpts="-q --quiet" ;; setlog) cmdOpts="-r --revision --bypass-hooks" ;; *) ;; esac cmdOpts="$cmdOpts --help -h" # take out options already given for (( i=2; i<=$COMP_CWORD-1; ++i )) ; do opt=${COMP_WORDS[$i]} case $opt in --*) optBase=${opt/=*/} ;; -*) optBase=${opt:0:2} ;; esac cmdOpts=" $cmdOpts " cmdOpts=${cmdOpts/ ${optBase} / } # take out alternatives case $optBase in -q) cmdOpts=${cmdOpts/ --quiet / } ;; --quiet) cmdOpts=${cmdOpts/ -q / } ;; -h) cmdOpts=${cmdOpts/ --help / } ;; --help) cmdOpts=${cmdOpts/ -h / } ;; -r) cmdOpts=${cmdOpts/ --revision / } ;; --revision) cmdOpts=${cmdOpts/ -r / } ;; esac # skip next option if this one requires a parameter if [[ $opt == @($optsParam) ]] ; then ((++i)) fi done COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) ) return 0}complete -F _svnadmin -o default svnadmin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -