aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/completions
diff options
context:
space:
mode:
authorGravatar axel <axel@liljencrantz.se>2006-02-17 20:13:39 +1000
committerGravatar axel <axel@liljencrantz.se>2006-02-17 20:13:39 +1000
commit343cafef346543282b5b6e825bc8f9dd10028a48 (patch)
tree1bcf221ecb525c7aeadc8325e7b780d3656e544b /share/completions
parent95a01f3c8f15034433ffce368d8f2d13d925139c (diff)
Redo installation file structure, move lots of things to $PREFIX/share/fish
darcs-hash:20060217101339-ac50b-d93d2c620a4b7f75f05ff461a6edbee001da7613.gz
Diffstat (limited to 'share/completions')
-rw-r--r--share/completions/apm.fish8
-rw-r--r--share/completions/apropos.fish21
-rw-r--r--share/completions/apt-build.fish29
-rw-r--r--share/completions/apt-cache.fish31
-rw-r--r--share/completions/apt-cdrom.fish13
-rw-r--r--share/completions/apt-config.fish7
-rw-r--r--share/completions/apt-extracttemplates.fish7
-rw-r--r--share/completions/apt-file.fish17
-rw-r--r--share/completions/apt-ftparchive.fish17
-rw-r--r--share/completions/apt-get.fish64
-rw-r--r--share/completions/apt-key.fish5
-rw-r--r--share/completions/apt-listbugs.fish25
-rw-r--r--share/completions/apt-listchanges.fish13
-rw-r--r--share/completions/apt-move.fish22
-rw-r--r--share/completions/apt-proxy-import.fish10
-rw-r--r--share/completions/apt-rdepends.fish13
-rw-r--r--share/completions/apt-setup.fish4
-rw-r--r--share/completions/apt-show-source.fish10
-rw-r--r--share/completions/apt-show-versions.fish14
-rw-r--r--share/completions/apt-sortpkgs.fish7
-rw-r--r--share/completions/apt-spy.fish20
-rw-r--r--share/completions/apt-src.fish24
-rw-r--r--share/completions/apt-zip-inst.fish10
-rw-r--r--share/completions/apt-zip-list.fish13
-rw-r--r--share/completions/arp.fish11
-rw-r--r--share/completions/at.fish10
-rw-r--r--share/completions/atd.fish6
-rw-r--r--share/completions/atq.fish4
-rw-r--r--share/completions/atrm.fish2
-rw-r--r--share/completions/bc.fish9
-rw-r--r--share/completions/btdownloadcurses.py.fish1
-rw-r--r--share/completions/btdownloadheadless.py.fish1
-rw-r--r--share/completions/bunzip2.fish15
-rw-r--r--share/completions/bzcat.fish8
-rw-r--r--share/completions/bzip2.fish19
-rw-r--r--share/completions/bzip2recover.fish8
-rw-r--r--share/completions/cat.fish12
-rw-r--r--share/completions/cd.fish39
-rw-r--r--share/completions/chgrp.fish12
-rw-r--r--share/completions/chown.fish12
-rw-r--r--share/completions/chsh.fish10
-rw-r--r--share/completions/commandline.fish12
-rw-r--r--share/completions/complete.fish14
-rw-r--r--share/completions/configure.fish12
-rw-r--r--share/completions/cut.fish10
-rw-r--r--share/completions/cvs.fish251
-rw-r--r--share/completions/darcs.fish236
-rw-r--r--share/completions/date.fish11
-rw-r--r--share/completions/df.fish38
-rw-r--r--share/completions/diff.fish26
-rw-r--r--share/completions/du.fish20
-rw-r--r--share/completions/echo.fish5
-rw-r--r--share/completions/elatex.fish2
-rw-r--r--share/completions/emacs.fish10
-rw-r--r--share/completions/emerge.fish68
-rw-r--r--share/completions/etex.fish1
-rw-r--r--share/completions/fish.fish6
-rw-r--r--share/completions/function.fish8
-rw-r--r--share/completions/functions.fish6
-rw-r--r--share/completions/fusermount.fish17
-rw-r--r--share/completions/gcc.fish96
-rw-r--r--share/completions/gpg.fish324
-rw-r--r--share/completions/gprof.fish34
-rw-r--r--share/completions/grep.fish50
-rw-r--r--share/completions/gunzip.fish25
-rw-r--r--share/completions/gzip.fish23
-rw-r--r--share/completions/help.fish36
-rw-r--r--share/completions/id.fish8
-rw-r--r--share/completions/ifconfig.fish25
-rw-r--r--share/completions/jobs.fish6
-rw-r--r--share/completions/kill.fish35
-rw-r--r--share/completions/la.fish2
-rw-r--r--share/completions/latex.fish2
-rw-r--r--share/completions/less.fish52
-rw-r--r--share/completions/ll.fish2
-rw-r--r--share/completions/ls.fish2
-rw-r--r--share/completions/make.fish29
-rw-r--r--share/completions/makedepend.fish13
-rw-r--r--share/completions/man.fish36
-rw-r--r--share/completions/mimedb.fish9
-rw-r--r--share/completions/modprobe.fish26
-rw-r--r--share/completions/mount.fish30
-rw-r--r--share/completions/mplayer.fish85
-rw-r--r--share/completions/mv.fish12
-rw-r--r--share/completions/nextd.fish1
-rw-r--r--share/completions/nice.fish5
-rw-r--r--share/completions/omega.fish2
-rw-r--r--share/completions/pdfelatex.fish3
-rw-r--r--share/completions/pdfetex.fish3
-rw-r--r--share/completions/pdflatex.fish2
-rw-r--r--share/completions/pdftex.fish3
-rw-r--r--share/completions/perl.fish20
-rw-r--r--share/completions/pine.fish26
-rw-r--r--share/completions/ping.fish30
-rw-r--r--share/completions/prevd.fish1
-rw-r--r--share/completions/ps.fish37
-rw-r--r--share/completions/pushd.fish1
-rw-r--r--share/completions/python.fish14
-rw-r--r--share/completions/read.fish8
-rw-r--r--share/completions/renice.fish4
-rw-r--r--share/completions/rm.fish11
-rw-r--r--share/completions/rmdir.fish8
-rw-r--r--share/completions/rpm.fish131
-rw-r--r--share/completions/ruby.fish25
-rw-r--r--share/completions/scp.fish35
-rw-r--r--share/completions/screen.fish37
-rw-r--r--share/completions/sed.fish38
-rw-r--r--share/completions/service.fish7
-rw-r--r--share/completions/set.fish77
-rw-r--r--share/completions/set_color.fish3
-rw-r--r--share/completions/sort.fish21
-rw-r--r--share/completions/ssh.fish45
-rw-r--r--share/completions/sshfs.fish33
-rw-r--r--share/completions/status.fish10
-rw-r--r--share/completions/su.fish12
-rw-r--r--share/completions/sudo.fish8
-rw-r--r--share/completions/svn.fish131
-rw-r--r--share/completions/tar.fish62
-rw-r--r--share/completions/test.fish39
-rw-r--r--share/completions/tex.fish5
-rw-r--r--share/completions/time.fish11
-rw-r--r--share/completions/top.fish14
-rw-r--r--share/completions/touch.fish11
-rw-r--r--share/completions/trap.fish4
-rw-r--r--share/completions/type.fish12
-rw-r--r--share/completions/ulimit.fish13
-rw-r--r--share/completions/umount.fish22
-rw-r--r--share/completions/uname.fish11
-rw-r--r--share/completions/uniq.fish15
-rw-r--r--share/completions/valgrind.fish74
-rw-r--r--share/completions/vared.fish3
-rw-r--r--share/completions/w.fish6
-rw-r--r--share/completions/wc.fish7
-rw-r--r--share/completions/wget.fish113
-rw-r--r--share/completions/whatis.fish2
-rw-r--r--share/completions/who.fish20
-rw-r--r--share/completions/xprop.fish32
-rw-r--r--share/completions/xsel.fish18
-rw-r--r--share/completions/yum.fish75
-rw-r--r--share/completions/zcat.fish10
-rw-r--r--share/completions/zip.fish32
141 files changed, 3701 insertions, 0 deletions
diff --git a/share/completions/apm.fish b/share/completions/apm.fish
new file mode 100644
index 00000000..40f3699f
--- /dev/null
+++ b/share/completions/apm.fish
@@ -0,0 +1,8 @@
+#apm
+complete -f -c apm -s V -l version -d (_ "Display version and exit")
+complete -f -c apm -s v -l verbose -d (_ "Print APM info")
+complete -f -c apm -s m -l minutes -d (_ "Print time remaining")
+complete -f -c apm -s M -l monitor -d (_ "Monitor status info")
+complete -f -c apm -s S -l standby -d (_ "Request APM standby mode")
+complete -f -c apm -s s -l suspend -d (_ "Request APM suspend mode")
+complete -f -c apm -s d -l debug -d (_ "APM status debugging info")
diff --git a/share/completions/apropos.fish b/share/completions/apropos.fish
new file mode 100644
index 00000000..18c3ab57
--- /dev/null
+++ b/share/completions/apropos.fish
@@ -0,0 +1,21 @@
+
+function __fish_complete_apropos
+ if test (commandline -ct)
+ set str (commandline -ct)
+ apropos $str|sed -e "s/^\(.*$str\([^ ]*\).*\)$/$str\2\t\1/"
+ end
+end
+
+complete -xc apropos -a '(__fish_complete_apropos)' -d (_ "whatis entry")
+
+complete -c apropos -s h -l help -d (_ "Display help and exit")
+complete -f -c apropos -s d -l debug -d (_ "Print debugging info")
+complete -f -c apropos -s v -l verbose -d (_ "Verbose mode")
+complete -f -c apropos -s r -l regex -d (_ "Keyword as regex")
+complete -f -c apropos -s w -l wildcard -d (_ "Keyword as wildcards")
+complete -f -c apropos -s e -l exact -d (_ "Keyword as exactly match")
+complete -x -c apropos -s m -l system -d (_ "Search for other system")
+complete -x -c apropos -s M -l manpath -a '(echo $MANPATH)' -d (_ "Specify man path")
+complete -x -c apropos -s C -l config-file -d (_ "Specify a configuration file")
+complete -f -c apropos -s V -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/apt-build.fish b/share/completions/apt-build.fish
new file mode 100644
index 00000000..9a1387cb
--- /dev/null
+++ b/share/completions/apt-build.fish
@@ -0,0 +1,29 @@
+
+#apt-build
+complete -c apt-build -l help -d (_ "Display help and exit")
+complete -f -c apt-build -a update -d (_ "Update list of packages")
+complete -f -c apt-build -a upgrade -d (_ "Upgrade packages")
+complete -f -c apt-bulid -a world -d (_ "Rebuild your system")
+complete -x -c apt-build -a install -d (_ "Build and install a new package")
+complete -x -c apt-build -a source -d (_ "Download and extract a source")
+complete -x -c apt-build -a info -d (_ "Info on a package")
+complete -x -c apt-build -a remove -d (_ "Remove packages")
+complete -x -c apt-build -a clean-build -d (_ "Erase built packages")
+complete -x -c apt-build -a build-source -d (_ "Build source without install")
+complete -x -c apt-build -a clean-sources -d (_ "Clean source directories")
+complete -x -c apt-build -a update-source -d (_ "Update source and rebuild")
+complete -x -c apt-build -a update-repository -d (_ "Update the repository")
+complete -f -c apt-build -l nowrapper -d (_ "Do not use gcc wrapper")
+complete -f -c apt-build -l remove-builddep -d (_ "Remove build-dep")
+complete -f -c apt-build -l no-source -d (_ "Do not download source")
+complete -f -c apt-build -l build-dir -d (_ "Specify build-dir")
+complete -f -c apt-build -l rebuild -d (_ "Rebuild a package")
+complete -f -c apt-build -l reinstall -d (_ "Rebuild and install an installed package")
+complete -r -f -c apt-build -l build-command -d (_ "Use <command> to build")
+complete -r -c apt-build -l patch -d (_ "Apply <file> patch")
+complete -c apt-build -s p -l patch-strip -d (_ "Prefix to strip on patch")
+complete -c apt-build -s y -l yes -d (_ "Assume yes to all questions")
+complete -c apt-build -l purge -d (_ "Use purge instead of remove")
+complete -c apt-build -l noupdate -d (_ "Do not run update")
+complete -r -c apt-build -l source-list -d (_ "Specify sources.list file")
+complete -f -c apt-build -s v -l version -d (_ "Display version and exit")
diff --git a/share/completions/apt-cache.fish b/share/completions/apt-cache.fish
new file mode 100644
index 00000000..ea8c90fe
--- /dev/null
+++ b/share/completions/apt-cache.fish
@@ -0,0 +1,31 @@
+#apt-cache
+complete -c apt-cache -s h -l help -d (_ "Display help and exit")
+complete -f -c apt-cache -a gencaches -d (_ "Build apt cache")
+complete -x -c apt-cache -a showpkg -d (_ "Show package info")
+complete -f -c apt-cache -a stats -d (_ "Show cache statistics")
+complete -x -c apt-cache -a showsrc -d (_ "Show source package")
+complete -f -c apt-cache -a dump -d (_ "Show packages in cache")
+complete -f -c apt-cache -a dumpavail -d (_ "Print available list")
+complete -f -c apt-cache -a unmet -d (_ "List unmet dependencies in cache")
+complete -x -c apt-cache -a show -d (_ "Display package record")
+complete -x -c apt-cache -a search -d (_ "Search packagename by REGEX")
+complete -c apt-cache -l full -a search -d (_ "Search full package name")
+complete -x -c apt-cache -l names-only -a search -d (_ "Search packagename only")
+complete -x -c apt-cache -a depends -d (_ "List dependencies for the package")
+complete -x -c apt-cache -a rdepends -d (_ "List reverse dependencies for the package")
+complete -x -c apt-cache -a pkgnames -d (_ "Print package name by prefix")
+complete -x -c apt-cache -a dotty -d (_ "Generate dotty output for packages")
+complete -x -c apt-cache -a policy -d (_ "Debug preferences file")
+complete -r -c apt-cache -s p -l pkg-cache -d (_ "Select file to store package cache")
+complete -r -c apt-cache -s s -l src-cache -d (_ "Select file to store source cache")
+complete -f -c apt-cache -s q -l quiet -d (_ "Quiet mode")
+complete -f -c apt-cache -s i -l important -d (_ "Print important dependencies")
+complete -f -c apt-cache -s a -l all-versions -d (_ "Print full records")
+complete -f -c apt-cache -s g -l generate -d (_ "Auto-gen package cache")
+complete -f -c apt-cache -l all-names -d (_ "Print all names")
+complete -f -c apt-cache -l recurse -d (_ "Dep and rdep recursive")
+complete -f -c apt-cache -l installed -d (_ "Limit to installed")
+complete -f -c apt-cache -s v -l version -d (_ "Display version and exit")
+complete -r -c apt-cache -s c -l config-file -d (_ "Specify config file")
+complete -x -c apt-cache -s o -l option -d (_ "Specify options")
+
diff --git a/share/completions/apt-cdrom.fish b/share/completions/apt-cdrom.fish
new file mode 100644
index 00000000..83aead2c
--- /dev/null
+++ b/share/completions/apt-cdrom.fish
@@ -0,0 +1,13 @@
+#apt-cdrom
+complete -c apt-cdrom -s h -l help -d (_ "Display help and exit")
+complete -r -c apt-cdrom -a add -d (_ "Add new disc to source list")
+complete -x -c apt-cdrom -a ident -d (_ "Report identity of disc")
+complete -r -c apt-cdrom -s d -l cdrom -d (_ "Mount point")
+complete -f -c apt-cdrom -s r -l rename -d (_ "Rename a disc")
+complete -f -c apt-cdrom -s m -l no-mount -d (_ "No mounting")
+complete -f -c apt-cdrom -s f -l fast -d (_ "Fast copy")
+complete -f -c apt-cdrom -s a -l thorough -d (_ "Thorough package scan")
+complete -f -c apt-cdrom -s n -l no-act -d (_ "No changes")
+complete -f -c apt-cdrom -s v -l version -d (_ "Display version and exit")
+complete -r -c apt-cdrom -s c -l config-file -d (_ "Specify config file")
+complete -x -c apt-cdrom -s o -l option -d (_ "Specify options")
diff --git a/share/completions/apt-config.fish b/share/completions/apt-config.fish
new file mode 100644
index 00000000..1e910bce
--- /dev/null
+++ b/share/completions/apt-config.fish
@@ -0,0 +1,7 @@
+#apt-config
+complete -c apt-config -s h -l help -d (_ "Display help and exit")
+complete -c apt-config -a shell -d (_ "Access config file from shell")
+complete -f -c apt-config -a dump -d (_ "Dump contents of config file")
+complete -f -c apt-config -s v -l version -d (_ "Display version and exit")
+complete -r -c apt-config -s c -l config-file -d (_ "Specify config file")
+complete -x -c apt-config -s o -l option -d (_ "Specify options")
diff --git a/share/completions/apt-extracttemplates.fish b/share/completions/apt-extracttemplates.fish
new file mode 100644
index 00000000..f3bdb66d
--- /dev/null
+++ b/share/completions/apt-extracttemplates.fish
@@ -0,0 +1,7 @@
+
+#apt-extracttemplates
+complete -c apt-extracttemplates -s h -l help -d (_ "Display help and exit")
+complete -r -c apt-extracttemplates -s t -d (_ "Set temp dir")
+complete -r -c apt-extracttemplates -s c -d (_ "Specifiy config file")
+complete -r -c apt-extracttemplates -s o -d (_ "Specify options")
+
diff --git a/share/completions/apt-file.fish b/share/completions/apt-file.fish
new file mode 100644
index 00000000..62d2f1b0
--- /dev/null
+++ b/share/completions/apt-file.fish
@@ -0,0 +1,17 @@
+#apt-file
+complete -c apt-file -s h -l help -d (_ "Display help and exit")
+complete -x -c apt-file -a update -d (_ "Resync package contents from source")
+complete -r -c apt-file -a search -d (_ "Search package containing pattern")
+complete -r -c apt-file -a list -d (_ "List contents of a package matching pattern")
+complete -x -c apt-file -a purge -d (_ "Remove all gz files from cache")
+complete -r -c apt-file -s c -l cache -d (_ "Set cache dir")
+complete -f -c apt-file -s v -l verbose -d (_ "Verbose mode")
+complete -c apt-file -s d -l cdrom-mount -d (_ "Use cdrom-mount-point")
+complete -f -c apt-file -s i -l ignore-case -d (_ "Do not expand pattern")
+complete -f -c apt-file -s x -l regexp -d (_ "Pattern is regexp")
+complete -f -c apt-file -s V -l version -d (_ "Display version and exit")
+complete -f -c apt-file -s a -l architecture -d (_ "Set arch")
+complete -r -c apt-file -s s -l sources-list -a "(ls /etc/apt)" -d (_ "Set sources.list file")
+complete -f -c apt-file -s l -l package-only -d (_ "Only display package name")
+complete -f -c apt-file -s F -l fixed-string -d (_ "Do not expand pattern")
+complete -f -c apt-file -s y -l dummy -d (_ "Run in dummy mode")
diff --git a/share/completions/apt-ftparchive.fish b/share/completions/apt-ftparchive.fish
new file mode 100644
index 00000000..556cd877
--- /dev/null
+++ b/share/completions/apt-ftparchive.fish
@@ -0,0 +1,17 @@
+#apt-ftparchive
+complete -c apt-ftparchive -s h -l help -d (_ "Display help and exit")
+complete -f -c apt-ftparchive -a packages -d (_ "Generate package from source")
+complete -f -c apt-ftparchive -a sources -d (_ "Generate source index file")
+complete -f -c apt-ftparchive -a contents -d (_ "Generate contents file")
+complete -f -c apt-ftparchive -a release -d (_ "Generate release file")
+complete -f -c apt-ftparchive -a clean -d (_ "Remove records")
+complete -f -c apt-ftparchive -l md5 -d (_ "Generate MD5 sums")
+complete -f -c apt-ftparchive -s d -l db -d (_ "Use a binary db")
+complete -f -c apt-ftparchive -s q -l quiet -d (_ "Quiet mode")
+complete -f -c apt-ftparchive -l delink -d (_ "Perform delinking")
+complete -f -c apt-ftparchive -l contents -d (_ "Perform contents generation")
+complete -c apt-ftparchive -s s -l source-override -d (_ "Use source override")
+complete -f -c apt-ftparchive -l readonly -d (_ "Make caching db readonly")
+complete -f -c apt-ftparchive -s v -l version -d (_ "Display version and exit")
+complete -r -c apt-ftparchive -s c -l config-file -d (_ "Use config file")
+complete -r -c apt-ftparchive -s o -l option -d (_ "Set config options")
diff --git a/share/completions/apt-get.fish b/share/completions/apt-get.fish
new file mode 100644
index 00000000..de6e3013
--- /dev/null
+++ b/share/completions/apt-get.fish
@@ -0,0 +1,64 @@
+#completion for apt-get
+
+function __fish_apt_no_subcommand -d (_ 'Test if apt has yet to be given the subcommand')
+ for i in (commandline -opc)
+ if contains -- $i update upgrade dselect-upgrade dist-upgrade install remove source build-dep check clean autoclean
+ return 1
+ end
+ end
+ return 0
+end
+
+function __fish_apt_use_package -d (_ 'Test if apt command should have packages as potential completion')
+ for i in (commandline -opc)
+ if contains -- $i contains install remove build-dep
+ return 0
+ end
+ end
+ return 1
+end
+
+complete -c apt-get -n '__fish_apt_use_package' -a '(__fish_print_packages)' -d (_ 'Package')
+
+complete -c apt-get -s h -l help -d (_ 'Display help and exit')
+complete -f -n '__fish_apt_no_subcommand' -c apt-get -a 'update' -d (_ 'Update sources')
+complete -f -n '__fish_apt_no_subcommand' -c apt-get -a 'upgrade' -d (_ 'Upgrade or install newest packages')
+complete -f -n '__fish_apt_no_subcommand' -c apt-get -a 'dselect-upgrade' -d (_ 'Use with dselect front-end')
+complete -f -n '__fish_apt_no_subcommand' -c apt-get -a 'dist-upgrade' -d (_ 'Distro upgrade')
+complete -f -n '__fish_apt_no_subcommand' -c apt-get -a 'install' -d (_ 'Install one or more packages')
+complete -f -n '__fish_apt_no_subcommand' -c apt-get -a 'remove' -d (_ 'Remove one or more packages')
+complete -f -n '__fish_apt_no_subcommand' -c apt-get -a 'source' -d (_ 'Fetch source packages')
+complete -f -n '__fish_apt_no_subcommand' -c apt-get -a 'build-dep' -d (_ 'Install/remove packages for dependencies')
+complete -f -n '__fish_apt_no_subcommand' -c apt-get -a 'check' -d (_ 'Update cache and check dependencies')
+complete -f -n '__fish_apt_no_subcommand' -c apt-get -a 'clean' -d (_ 'Clean local caches and packages')
+complete -f -n '__fish_apt_no_subcommand' -c apt-get -a 'autoclean' -d (_ 'Clean packages no longer be downloaded')
+complete -c apt-get -s d -l download-only -d (_ 'Download Only')
+complete -c apt-get -s f -l fix-broken -d (_ 'Correct broken dependencies')
+complete -c apt-get -s m -l fix-missing -d (_ 'Ignore missing packages')
+complete -c apt-get -l no-download -d (_ 'Disable downloading packages')
+complete -c apt-get -s q -l quiet -d (_ 'Quiet mode')
+complete -c apt-get -s s -l simulate -d (_ 'Perform a simulation')
+complete -c apt-get -s y -l assume-yes -d (_ 'Automatic yes to prompts')
+complete -c apt-get -s u -l show-upgraded -d (_ 'Show upgraded packages')
+complete -c apt-get -s V -l verbose-versions -d (_ 'Show full versions for packages')
+complete -c apt-get -s b -l compile -d (_ 'Compile source packages')
+complete -c apt-get -s b -l build -d (_ 'Compile source packages')
+complete -c apt-get -l ignore-hold -d (_ 'Ignore package Holds')
+complete -c apt-get -l no-upgrade -d (_ "Do not upgrade packages")
+complete -c apt-get -l force-yes -d (_ 'Force yes')
+complete -c apt-get -l print-uris -d (_ 'Print the URIs')
+complete -c apt-get -l purge -d (_ 'Use purge instead of remove')
+complete -c apt-get -l reinstall -d (_ 'Reinstall packages')
+complete -c apt-get -l list-cleanup -d (_ 'Erase obsolete files')
+complete -c apt-get -s t -l target-release -d (_ 'Control default input to the policy engine')
+complete -c apt-get -l trivial-only -d (_ 'Only perform operations that are trivial')
+complete -c apt-get -l no-remove -d (_ 'Abort if any packages are to be removed')
+complete -c apt-get -l only-source -d (_ 'Only accept source packages')
+complete -c apt-get -l diff-only -d (_ 'Download only diff file')
+complete -c apt-get -l tar-only -d (_ 'Download only tar file')
+complete -c apt-get -l arch-only -d (_ 'Only process arch-dependant build-dependencies')
+complete -c apt-get -l allow-unauthenticated -d (_ 'Ignore non-authenticated packages')
+complete -c apt-get -s v -l version -d (_ 'Display version and exit')
+complete -r -c apt-get -s c -l config-file -d (_ 'Specify a config file')
+complete -r -c apt-get -s o -l option -d (_ 'Set a config option')
+
diff --git a/share/completions/apt-key.fish b/share/completions/apt-key.fish
new file mode 100644
index 00000000..0e5dc2e4
--- /dev/null
+++ b/share/completions/apt-key.fish
@@ -0,0 +1,5 @@
+#apt-key
+complete -r -c apt-key -a add -d (_ "Add a new key")
+complete -f -c apt-key -a del -d (_ "Remove a key")
+complete -f -c apt-key -a list -d (_ "List trusted keys")
+
diff --git a/share/completions/apt-listbugs.fish b/share/completions/apt-listbugs.fish
new file mode 100644
index 00000000..7c2175dd
--- /dev/null
+++ b/share/completions/apt-listbugs.fish
@@ -0,0 +1,25 @@
+#apt-listbugs
+complete -c apt-listbugs -s h -l help -d (_ "Display help and exit")
+complete -f -c apt-listbugs -s s -l severity -a "critical grave" -d (_ "Set severity")
+complete -f -c apt-listbugs -s T -l tag -d (_ "Tags you want to see")
+complete -f -c apt-listbugs -s S -l stats -a "outstanding 'pending upload' resolved done open" -d (_ "Bug-status you want to see")
+complete -f -c apt-listbugs -s l -l showless -d (_ "Ignore bugs in your system")
+complete -f -c apt-listbugs -s g -l showgreater -d (_ "Ignore newer bugs than upgrade packages")
+complete -f -c apt-listbugs -s D -l show-downgrade -d (_ "Bugs for downgrade packages")
+complete -f -c apt-listbugs -s H -l hostname -a "osdn.debian.or.jp" -d (_ "Bug Tracking system")
+complete -f -c apt-listbugs -s p -l port -d (_ "Specify port for web interface")
+complete -f -c apt-listbugs -s R -l release-critical -d (_ "Use daily bug report")
+complete -f -c apt-listbugs -s I -l index -d (_ "Use the raw index.db")
+complete -f -c apt-listbugs -s X -l indexdir -d (_ "Specify index dir")
+complete -f -c apt-listbugs -s P -l pin-priority -d (_ "Specify Pin-Priority value")
+complete -f -c apt-listbugs -l title -d (_ "Specify the title of rss")
+complete -f -c apt-listbugs -s f -l force-download -d (_ "Retrieve fresh bugs")
+complete -f -c apt-listbugs -s q -l quiet -d (_ "Do not display progress bar")
+complete -f -c apt-listbugs -s c -l cache-dir -a "/var/cache/apt-listbugs/" -d (_ "Specify local cache dir")
+complete -f -c apt-listbugs -s t -l timer -d (_ "Specify the expire cache timer")
+complete -c apt-listbugs -s C -l aptconf -d (_ "Specify apt config file")
+complete -f -c apt-listbugs -s y -l force-yes -d (_ "Assume yes to all questions")
+complete -f -c apt-listbugs -s n -l force-no -d (_ "Assume no to all questions")
+complete -c apt-listbugs -a list -d (_ "List bugs from packages")
+complete -c apt-listbugs -a rss -d (_ "List bugs in rss format")
+
diff --git a/share/completions/apt-listchanges.fish b/share/completions/apt-listchanges.fish
new file mode 100644
index 00000000..4bf1aa64
--- /dev/null
+++ b/share/completions/apt-listchanges.fish
@@ -0,0 +1,13 @@
+#apt-listchanges
+complete -c apt-listchanges -l help -d (_ "Display help and exit")
+complete -c apt-listchanges -l apt -d (_ "Read filenames from pipe")
+complete -f -c apt-listchanges -s v -l verbose -d (_ "Verbose mode")
+complete -f -c apt-listchanges -s f -l frontend -a "pager browser xterm-pager xterm-browser text mail none" -d (_ "Select frontend interface")
+complete -r -f -c apt-listchanges -l email-address -d (_ "Specify email address")
+complete -f -c apt-listchanges -s c -l confirm -d (_ "Ask confirmation")
+complete -f -c apt-listchanges -s a -l all -d (_ "Display all changelogs")
+complete -r -c apt-listchanges -l save_seen -d (_ "Avoid changelogs from db in named file")
+complete -r -f -c apt-listchanges -l which -a "news changelogs both" -d (_ "Select display")
+complete -f -c apt-listchanges -s h -l headers -d (_ "Insert header")
+complete -f -c apt-listchanges -l debug -d (_ "Display debug info")
+complete -r -c apt-listchanges -l profile -d (_ "Select an option profile")
diff --git a/share/completions/apt-move.fish b/share/completions/apt-move.fish
new file mode 100644
index 00000000..915ce894
--- /dev/null
+++ b/share/completions/apt-move.fish
@@ -0,0 +1,22 @@
+#apt-move
+complete -c apt-move -a get -d (_ "Generate master file")
+complete -c apt-move -a getlocal -d (_ "Alias for 'get'")
+complete -f -c apt-move -a move -d (_ "Move packages to local tree")
+complete -f -c apt-move -a delete -d (_ "Delete obsolete package files")
+complete -f -c apt-move -a packages -d (_ "Build new local files")
+complete -f -c apt-move -a fsck -d (_ "Rebuild index files")
+complete -f -c apt-move -a update -d (_ "Move packages from cache to local mirror")
+complete -f -c apt-move -a local -d (_ "Alias for 'move delete packages'")
+complete -f -c apt-move -a localupdate -d (_ "Alias for 'update'")
+complete -f -c apt-move -a mirror -d (_ "Download package missing from mirror")
+complete -f -c apt-move -a sync -d (_ "Sync packages installed")
+complete -f -c apt-move -a exclude -d 'test $LOCALDIR/.exclude file'
+complete -c apt-move -a movefile -d (_ "Move file specified on commandline")
+complete -f -c apt-move -a listbin -d (_ "List packages that may serve as input to mirrorbin or mirrorsource" )
+complete -f -c apt-move -a mirrorbin -d (_ "Fetch package from STDIN")
+complete -f -c apt-move -a mirrorsrc -d (_ "Fetch source package from STDIN")
+complete -f -c apt-move -s a -d (_ "Process all packages")
+complete -c apt-move -s c -d (_ "Use specific conffile")
+complete -f -c apt-move -s f -d (_ "Force deletion")
+complete -f -c apt-move -s q -d (_ "Suppresses normal output")
+complete -f -c apt-move -s t -d (_ "Test run")
diff --git a/share/completions/apt-proxy-import.fish b/share/completions/apt-proxy-import.fish
new file mode 100644
index 00000000..ab838594
--- /dev/null
+++ b/share/completions/apt-proxy-import.fish
@@ -0,0 +1,10 @@
+#apt-proxy-import
+complete -c apt-proxy-import -s h -l help -d (_ 'Display help and exit')
+complete -f -c apt-proxy-import -s V -l version -d (_ 'Display version and exit')
+complete -f -c apt-proxy-import -s v -l verbose -d (_ 'Verbose mode')
+complete -f -c apt-proxy-import -s q -l quiet -d (_ 'No message to STDOUT')
+complete -f -c apt-proxy-import -s r -l recursive -d (_ 'Recurse into subdir')
+complete -r -c apt-proxy-import -s i -l import-dir -a '(ls -Fp|grep /$)' -d (_ 'Dir to import')
+complete -r -c apt-proxy-import -s u -l user -a '(__fish_complete_users)' -d (_ 'Change to user')
+complete -r -c apt-proxy-import -s d -l debug -d (_ 'Debug level[default 0]')
+
diff --git a/share/completions/apt-rdepends.fish b/share/completions/apt-rdepends.fish
new file mode 100644
index 00000000..03a915fe
--- /dev/null
+++ b/share/completions/apt-rdepends.fish
@@ -0,0 +1,13 @@
+#apt-rdepends
+complete -c apt-rdepends -l help -d (_ "Display help and exit")
+complete -f -c apt-rdepends -s b -l build-depends -d (_ "Show build dependencies")
+complete -f -c apt-rdepends -s d -l dotty -d (_ "Generate a dotty graph")
+complete -f -c apt-rdepends -s p -l print-state -d (_ "Show state of dependencies")
+complete -f -c apt-rdepends -s r -l reverse -d (_ "List packages depending on")
+complete -r -f -c apt-rdepends -s f -l follow -d (_ "Comma-separated list of dependancy types to follow recursively")
+complete -r -f -c apt-rdepends -s s -l show -d (_ "Comma-separated list of dependancy types to show")
+complete -r -f -c apt-rdepends -l state-follow -d (_ "Comma-separated list of package installation states to follow recursively")
+complete -r -f -c apt-rdepends -l state-show -d (_ "Comma-separated list of package installation states to show")
+complete -f -c apt-rdepends -l man -d (_ "Display man page")
+complete -f -c apt-rdepends -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/apt-setup.fish b/share/completions/apt-setup.fish
new file mode 100644
index 00000000..b57b95db
--- /dev/null
+++ b/share/completions/apt-setup.fish
@@ -0,0 +1,4 @@
+#apt-setup
+complete -c apt-setup -a probe -d (_ "Probe a CD")
+complete -c apt-setup -s N -d (_ "Run in noninteractive mode")
+
diff --git a/share/completions/apt-show-source.fish b/share/completions/apt-show-source.fish
new file mode 100644
index 00000000..6c875f9c
--- /dev/null
+++ b/share/completions/apt-show-source.fish
@@ -0,0 +1,10 @@
+#apt-show-source
+complete -c apt-show-source -s h -l help -d (_ 'Display help and exit')
+complete -r -c apt-show-source -l status-file -d (_ 'Read package from file') -f
+complete -r -c apt-show-source -o stf -d (_ 'Read package from file') -f
+complete -r -c apt-show-source -l list-dir -a '(ls -Fp .|grep /$) /var/lib/apt/lists' -d (_ 'Specify APT list dir')
+complete -r -c apt-show-source -o ld -a '(ls -Fp .|grep /$) /var/lib/apt/lists' -d (_ 'Specify APT list dir')
+complete -r -c apt-show-source -s p -l package -a '(apt-cache pkgnames)' -d (_ 'List PKG info')
+complete -f -c apt-show-source -l version-only -d (_ 'Display version and exit')
+complete -f -c apt-show-source -s a -l all -d (_ 'Print all source packages with version')
+complete -f -c apt-show-source -s v -l verbose -d (_ 'Verbose mode')
diff --git a/share/completions/apt-show-versions.fish b/share/completions/apt-show-versions.fish
new file mode 100644
index 00000000..f4ee6c60
--- /dev/null
+++ b/share/completions/apt-show-versions.fish
@@ -0,0 +1,14 @@
+#apt-show-versions
+complete -c apt-show-source -s h -l help -d (_ 'Display help and exit')
+complete -r -c apt-show-versions -s p -l packages -a '(apt-cache pkgnames)' -d (_ 'Print PKG versions')
+complete -f -c apt-show-versions -s r -l regex -d (_ 'Using regex')
+complete -f -c apt-show-versions -s u -l upgradeable -d (_ 'Print only upgradeable packages')
+complete -f -c apt-show-versions -s a -l allversions -d (_ 'Print all versions')
+complete -f -c apt-show-versions -s b -l brief -d (_ 'Print package name/distro')
+complete -f -c apt-show-versions -s v -l verbose -d (_ 'Print verbose info')
+complete -f -c apt-show-versions -s i -l initialize -d (_ 'Init or update cache only')
+complete -r -c apt-show-versions -l status-file -d (_ 'Read package from file')
+complete -r -c apt-show-versions -o stf -d (_ 'Read package from file')
+complete -r -c apt-show-versions -l list-dir -a '(ls -Fp .|grep /$) /var/lib/apt/lists /var/state/apt/lists' -d (_ 'Specify APT list dir')
+complete -r -c apt-show-versions -o ld -a '(ls -Fp .|grep /$) /var/lib/apt/lists /var/state/apt/lists' -d (_ 'Specify APT list dir')
+
diff --git a/share/completions/apt-sortpkgs.fish b/share/completions/apt-sortpkgs.fish
new file mode 100644
index 00000000..d2b4bb08
--- /dev/null
+++ b/share/completions/apt-sortpkgs.fish
@@ -0,0 +1,7 @@
+#apt-sortpkgs
+complete -c apt-sortpkgs -s h -l help -d (_ "Display help and exit")
+complete -f -c apt-sortpkgs -s s -l source -d (_ "Use source index field")
+complete -f -c apt-sortpkgs -s v -l version -d (_ "Display version and exit")
+complete -r -c apt-sortpkgs -s c -l conf-file -d (_ "Specify conffile")
+complete -r -f -c apt-sortpkgs -s o -l option -d (_ "Set config options")
+
diff --git a/share/completions/apt-spy.fish b/share/completions/apt-spy.fish
new file mode 100644
index 00000000..41d7ed0d
--- /dev/null
+++ b/share/completions/apt-spy.fish
@@ -0,0 +1,20 @@
+#apt-spy
+complete -c apt-spy -s h -d (_ "Display help and exit")
+complete -f -c apt-spy -s d -a "stable testing unstable" -d (_ "Debian distribution")
+complete -f -c apt-spy -s a -a "Africa Asia Europe North-America Oceania South-America" -d (_ "Servers in the areas")
+complete -c apt-spy -s c -d (_ "Conf file")
+complete -f -c apt-spy -s e -d (_ "Finish after number of servers")
+complete -c apt-spy -s f -d (_ "File to grab servers")
+complete -c apt-spy -s i -d (_ "File as input")
+complete -c apt-spy -s m -d (_ "Mirror-list file")
+complete -c apt-spy -s o -d (_ "Output sources.list file")
+complete -f -c apt-spy -s p -d (_ "Use proxy server")
+complete -f -c apt-spy -s s -d (_ "Comma separated country list")
+complete -f -c apt-spy -s t -d (_ "How long in sec to download")
+complete -f -c apt-spy -s u -d (_ "Custom URL to get mirror list")
+complete -c apt-spy -s w -d (_ "Write top servers to file")
+complete -f -c apt-spy -s n -d (_ "Number of top servers")
+complete -f -c apt-spy -a "update" -d (_ "Update mirror list")
+complete -f -c apt-spy -s v -d (_ "Version number")
+
+
diff --git a/share/completions/apt-src.fish b/share/completions/apt-src.fish
new file mode 100644
index 00000000..98cda50b
--- /dev/null
+++ b/share/completions/apt-src.fish
@@ -0,0 +1,24 @@
+#apt-src
+complete -c apt-src -s h -l help -d (_ "Display help and exit")
+complete -f -c apt-src -a "update" -d (_ "Update list of source packages")
+complete -f -c apt-src -a "install" -d (_ "Install source packages")
+complete -f -c apt-src -a "upgrade" -d (_ "Upgrade source packages")
+complete -f -c apt-src -a "remove" -d (_ "Remove source packages")
+complete -f -c apt-src -a "build" -d (_ "Build source packages")
+complete -f -c apt-src -a "clean" -d (_ "Clean source packages")
+complete -f -c apt-src -a "import" -d (_ "Detect known source tree")
+complete -f -c apt-src -a "list" -d (_ "List installed source package\(s\)")
+complete -f -c apt-src -a "location" -d (_ "Root source tree")
+complete -f -c apt-src -a "version" -d (_ "Version of source package")
+complete -f -c apt-src -a "name" -d (_ "Name of the source package")
+complete -f -c apt-src -s b -l build -d (_ "Build source packages")
+complete -f -c apt-src -s i -l installdebs -d (_ "Install after build")
+complete -f -c apt-src -s p -l patch -d (_ "Patch local changes")
+complete -r -c apt-src -s l -l location -d (_ "Specify a dir")
+complete -c apt-src -s c -l here -d (_ "Run on current dir")
+complete -f -c apt-src -l upstream-version -d (_ "Omit debian version")
+complete -f -c apt-src -s k -l keep-built -d (_ "Do not del built files")
+complete -f -c apt-src -s n -l no-delete-source -d (_ "Do not del source files")
+complete -f -c apt-src -l version -d (_ "Source tree version")
+complete -f -c apt-src -s q -l quiet -d (_ "Output to /dev/null")
+complete -f -c apt-src -s t -l trace -d (_ "Output trace")
diff --git a/share/completions/apt-zip-inst.fish b/share/completions/apt-zip-inst.fish
new file mode 100644
index 00000000..34a302ef
--- /dev/null
+++ b/share/completions/apt-zip-inst.fish
@@ -0,0 +1,10 @@
+#apt-zip-inst
+complete -c apt-zip-inst -s h -l help -d (_ "Display help and exit")
+complete -f -c apt-zip-inst -s V -l version -d (_ "Display version and exit")
+complete -c apt-zip-inst -s m -l medium -d (_ "Removable medium")
+complete -f -c apt-zip-inst -s a -l aptgetaction -a "dselect-upgrade upgrade dist-upgrade" -d (_ "Select an action")
+complete -c apt-zip-inst -s p -l packages -d (_ "List of packages to install")
+complete -f -c apt-zip-inst -s f -l fix-broken -d (_ "Fix broken option")
+complete -c apt-zip-inst -l skip-mount -d (_ "Specify a non-mountpoint dir")
+
+
diff --git a/share/completions/apt-zip-list.fish b/share/completions/apt-zip-list.fish
new file mode 100644
index 00000000..d62e2133
--- /dev/null
+++ b/share/completions/apt-zip-list.fish
@@ -0,0 +1,13 @@
+#apt-zip-list
+complete -c apt-zip-list -s h -l help -d (_ "Display help and exit")
+complete -f -c apt-zip-list -s V -l version -d (_ "Display version and exit")
+complete -c apt-zip-list -s m -l medium -d (_ "Removable medium")
+complete -f -c apt-zip-list -s a -l aptgetaction -a "dselect-upgrade upgrade dist-upgrade" -d (_ "Select an action")
+complete -c apt-zip-list -s p -l packages -d (_ "List of packages to install")
+complete -f -c apt-zip-list -s f -l fix-broken -d (_ "Fix broken option")
+complete -c apt-zip-list -l skip-mount -d (_ "Specify a non-mountpoint dir")
+complete -c apt-zip-list -s M -l method -d (_ "Select a method")
+complete -c apt-zip-list -s o -l options -a "tar restart" -d (_ "Specify options")
+complete -c apt-zip-list -s A -l accept -a "http ftp" -d (_ "Accept protocols")
+complete -c apt-zip-list -s R -l reject -a "http ftp" -d (_ "Reject protocols")
+
diff --git a/share/completions/arp.fish b/share/completions/arp.fish
new file mode 100644
index 00000000..162c428f
--- /dev/null
+++ b/share/completions/arp.fish
@@ -0,0 +1,11 @@
+#completion for arp
+complete -c arp -s v -l verbose -d (_ "Verbose mode")
+complete -c arp -s n -l numeric -d (_ "Numerical address")
+complete -x -c arp -s H -l tw-type -a "ether arcnet pronet ax25 netrom" -d (_ "Class of hw type")
+complete -c arp -s a -l display -x -a "(__fish_print_hostnames)" -d (_ "Show arp entries")
+complete -x -c arp -s d -l delete -a "(__fish_print_hostnames)" -d (_ "Remove an entry for hostname")
+complete -c arp -s D -l use-device -d (_ "Use hardware address")
+complete -x -c arp -s i -l device -a "(__fish_print_interfaces)" -d (_ "Select interface")
+complete -x -c arp -s s -l set -d (_ "Manually create ARP address") -a "(__fish_print_hostnames)"
+complete -f -c arp -s f -l file -d (_ "Take addr from filename, default /etc/ethers")
+
diff --git a/share/completions/at.fish b/share/completions/at.fish
new file mode 100644
index 00000000..54450138
--- /dev/null
+++ b/share/completions/at.fish
@@ -0,0 +1,10 @@
+#at
+complete -f -c at -s V -d (_ "Display version and exit")
+complete -f -c at -s q -d (_ "Use specified queue")
+complete -f -c at -s m -d (_ "Send mail to user")
+complete -c at -s f -x -a "(__fish_complete_suffix (commandline -ct) '' 'At job')" -d (_ "Read job from file")
+complete -f -c at -s l -d (_ "Alias for atq")
+complete -f -c at -s d -d (_ "Alias for atrm")
+complete -f -c at -s v -d (_ "Show the time")
+complete -f -c at -s c -d (_ "Print the jobs listed")
+
diff --git a/share/completions/atd.fish b/share/completions/atd.fish
new file mode 100644
index 00000000..3d947e20
--- /dev/null
+++ b/share/completions/atd.fish
@@ -0,0 +1,6 @@
+#atd
+complete -f -c atd -s l -d (_ "Limiting load factor")
+complete -f -c atd -s b -d (_ "Minimum interval in seconds")
+complete -f -c atd -s d -d (_ "Debug mode")
+complete -f -c atd -s s -d (_ "Process at queue only once")
+
diff --git a/share/completions/atq.fish b/share/completions/atq.fish
new file mode 100644
index 00000000..4ef4c03d
--- /dev/null
+++ b/share/completions/atq.fish
@@ -0,0 +1,4 @@
+#atq
+complete -f -c atq -s V -d (_ "Display version and exit")
+complete -f -c atq -s q -d (_ "Use specified queue")
+
diff --git a/share/completions/atrm.fish b/share/completions/atrm.fish
new file mode 100644
index 00000000..e92c88a7
--- /dev/null
+++ b/share/completions/atrm.fish
@@ -0,0 +1,2 @@
+#atrm
+complete -f -c atrm -s V -d (_ "Display version and exit")
diff --git a/share/completions/bc.fish b/share/completions/bc.fish
new file mode 100644
index 00000000..e05d0992
--- /dev/null
+++ b/share/completions/bc.fish
@@ -0,0 +1,9 @@
+# Completions for the binary calculator
+
+complete -c bc -s i -l interactive -d (_ "Force interactive mode")
+complete -c bc -s l -l math-lib -d (_ "Define math library")
+complete -c bc -s w -l warn -d (_ "Give warnings for extensions to POSIX bc")
+complete -c bc -s s -l standard -d (_ "Process exactly POSIX bc")
+complete -c bc -s q -l quiet -d (_ "Do not print the GNU welcome")
+complete -c bc -s v -l version -d (_ "Display version and exit")
+complete -c bc -s h -l help -d (_ "Display help and exit")
diff --git a/share/completions/btdownloadcurses.py.fish b/share/completions/btdownloadcurses.py.fish
new file mode 100644
index 00000000..73a17461
--- /dev/null
+++ b/share/completions/btdownloadcurses.py.fish
@@ -0,0 +1 @@
+__fish_complete_bittorrent btdownloadcurses.py
diff --git a/share/completions/btdownloadheadless.py.fish b/share/completions/btdownloadheadless.py.fish
new file mode 100644
index 00000000..d2e83c60
--- /dev/null
+++ b/share/completions/btdownloadheadless.py.fish
@@ -0,0 +1 @@
+__fish_complete_bittorrent btdownloadheadless.py
diff --git a/share/completions/bunzip2.fish b/share/completions/bunzip2.fish
new file mode 100644
index 00000000..d98efe95
--- /dev/null
+++ b/share/completions/bunzip2.fish
@@ -0,0 +1,15 @@
+complete -c bunzip2 -x -a "(
+ __fish_complete_suffix (commandline -ct) .bz 'Compressed file'
+ __fish_complete_suffix (commandline -ct) .bz2 'Compressed file'
+ __fish_complete_suffix (commandline -ct) .tbz 'Compressed archive'
+ __fish_complete_suffix (commandline -ct) .tbz2 'Compressed archive'
+)
+"
+
+complete -c bunzip2 -s c -l stdout -d (_ "Decompress to stdout")
+complete -c bunzip2 -s f -l force -d (_ "Overwrite")
+complete -c bunzip2 -s k -l keep -d (_ "Do not overwrite")
+complete -c bunzip2 -s s -l small -d (_ "Reduce memory usage")
+complete -c bunzip2 -s v -l verbose -d (_ "Print compression ratios")
+complete -c bunzip2 -s L -l license -d (_ "Print license")
+complete -c bunzip2 -s V -l version -d (_ "Display version and exit")
diff --git a/share/completions/bzcat.fish b/share/completions/bzcat.fish
new file mode 100644
index 00000000..6bc9bdfb
--- /dev/null
+++ b/share/completions/bzcat.fish
@@ -0,0 +1,8 @@
+complete -c bzcat -x -a "(
+ __fish_complete_suffix (commandline -ct) .bz 'Compressed file'
+ __fish_complete_suffix (commandline -ct) .bz2 'Compressed file'
+ __fish_complete_suffix (commandline -ct) .tbz 'Compressed archive'
+ __fish_complete_suffix (commandline -ct) .tbz2 'Compressed archive'
+)
+"
+complete -c bzcat -s s -l small -d (_ "Reduce memory usage")
diff --git a/share/completions/bzip2.fish b/share/completions/bzip2.fish
new file mode 100644
index 00000000..6727d162
--- /dev/null
+++ b/share/completions/bzip2.fish
@@ -0,0 +1,19 @@
+complete -c bzip2 -s c -l stdout -d (_ "Compress to stdout")
+complete -c bzip2 -s d -l decompress -x -a "(
+ __fish_complete_suffix (commandline -ct) .bz 'Compressed file'
+ __fish_complete_suffix (commandline -ct) .bz2 'Compressed file'
+ __fish_complete_suffix (commandline -ct) .tbz 'Compressed archive'
+ __fish_complete_suffix (commandline -ct) .tbz2 'Compressed archive'
+)
+"
+complete -c bzip2 -s z -l compress -d (_ "Compress file")
+complete -c bzip2 -s t -l test -d (_ "Check integrity")
+complete -c bzip2 -s f -l force -d (_ "Overwrite")
+complete -c bzip2 -s k -l keep -d (_ "Do not overwrite")
+complete -c bzip2 -s s -l small -d (_ "Reduce memory usage")
+complete -c bzip2 -s q -l quiet -d (_ "Supress errors")
+complete -c bzip2 -s v -l verbose -d (_ "Print compression ratios")
+complete -c bzip2 -s L -l license -d (_ "Print license")
+complete -c bzip2 -s V -l version -d (_ "Display version and exit")
+complete -c bzip2 -s 1 -l fast -d (_ "Small block size")
+complete -c bzip2 -s 9 -l best -d (_ "Large block size")
diff --git a/share/completions/bzip2recover.fish b/share/completions/bzip2recover.fish
new file mode 100644
index 00000000..2ac17f46
--- /dev/null
+++ b/share/completions/bzip2recover.fish
@@ -0,0 +1,8 @@
+complete -c bzip2recover -x -a "(
+ __fish_complete_suffix (commandline -ct) .bz 'Compressed file'
+ __fish_complete_suffix (commandline -ct) .bz2 'Compressed file'
+ __fish_complete_suffix (commandline -ct) .tbz 'Compressed archive'
+ __fish_complete_suffix (commandline -ct) .tbz2 'Compressed archive'
+)
+"
+
diff --git a/share/completions/cat.fish b/share/completions/cat.fish
new file mode 100644
index 00000000..be52e9c3
--- /dev/null
+++ b/share/completions/cat.fish
@@ -0,0 +1,12 @@
+complete -c cat -s A -l show-all -d (_ "Escape all non-printing characters")
+complete -c cat -s b -l number-nonblank -d (_ "Number nonblank lines")
+complete -c cat -s e -d (_ "Escape non-printing characters except tab")
+complete -c cat -s E -l show-ends -d (_ "Display \$ at end of line")
+complete -c cat -s n -l number -d (_ "Number all lines")
+complete -c cat -s s -l squeeze-blank -d (_ "Never more than single blank line")
+complete -c cat -s t -d (_ "Escape non-printing characters except newline")
+complete -c cat -s T -l show-tabs -d (_ "Escape tab")
+complete -c cat -s v -d (_ "Escape non-printing except newline and tab")
+complete -c cat -l help -d (_ "Display help and exit")
+complete -c cat -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/cd.fish b/share/completions/cd.fish
new file mode 100644
index 00000000..93eadcb7
--- /dev/null
+++ b/share/completions/cd.fish
@@ -0,0 +1,39 @@
+
+function __fish_complete_cd -d "Completions for the cd command"
+
+ #
+ # We can't simply use __fish_complete_directory because of the CDPATH
+ #
+
+ set -- wd $PWD
+ set -- owd $OLDPWD
+
+ # Check if CDPATH is set
+
+ set -l mycdpath
+
+ if test -z $CDPATH[1]
+ set mycdpath .
+ else
+ set mycdpath $CDPATH
+ end
+
+ if echo (commandline -ct)|grep '^/\|./' >/dev/null
+ # This is an absolute search path
+ eval printf '\%s\\tDirectory\\n' (commandline -ct)\*/
+ else
+ # This is a relative search path
+ # Iterate over every directory in CDPATH and check for possible completions
+ for i in $mycdpath
+ # Move to the initial directory first, in case the CDPATH directory is relative
+ builtin cd $wd
+ builtin cd $i
+ eval printf '"%s\tDirectory in "'$i'"\n"' (commandline -ct)\*/
+ end
+ end
+
+ builtin cd $wd
+ set -- OLDPWD $owd
+end
+
+complete -x -c cd -a "(__fish_complete_cd)"
diff --git a/share/completions/chgrp.fish b/share/completions/chgrp.fish
new file mode 100644
index 00000000..41cce959
--- /dev/null
+++ b/share/completions/chgrp.fish
@@ -0,0 +1,12 @@
+
+complete -c chgrp -s c -l changes -d (_ "Output diagnostic for changed files")
+complete -c chgrp -l dereference -d (_ "Dereferense symbolic links")
+complete -c chgrp -s h -l no-dereference -d (_ "Do not dereference symbolic links")
+complete -c chgrp -l from -d (_ "Change from owner/group")
+complete -c chgrp -s f -l silent -d (_ "Supress errors")
+complete -c chgrp -l reference -d (_ "Use same owner/group as file") -r
+complete -c chgrp -s R -l recursive -d (_ "Operate recursively")
+complete -c chgrp -s v -l verbose -d (_ "Output diagnostic for every file")
+complete -c chgrp -s h -l help -d (_ "Display help and exit")
+complete -c chgrp -l version -d (_ "Display version and exit")
+complete -c chgrp -d Group -a "(__fish_complete_groups)"
diff --git a/share/completions/chown.fish b/share/completions/chown.fish
new file mode 100644
index 00000000..1ba22d29
--- /dev/null
+++ b/share/completions/chown.fish
@@ -0,0 +1,12 @@
+complete -c chown -s c -l changes -d (_ "Output diagnostic for changed files")
+complete -c chown -l dereference -d (_ "Dereferense symbolic links")
+complete -c chown -s h -l no-dereference -d (_ "Do not dereference symbolic links")
+complete -c chown -l from -d (_ "Change from owner/group")
+complete -c chown -s f -l silent -d (_ "Supress errors")
+complete -c chown -l reference -d (_ "Use same owner/group as file") -r
+complete -c chown -s R -l recursive -d (_ "Operate recursively")
+complete -c chown -s v -l verbose -d (_ "Output diagnostic for every file")
+complete -c chown -s h -l help -d (_ "Display help and exit")
+complete -c chown -l version -d (_ "Display version and exit")
+complete -c chown -d (_ "Username") -a "(__fish_print_users):"
+complete -c chown -d (_ "Username") -a "(echo (commandline -ct)|grep -o '.*:')(cat /etc/group |cut -d : -f 1)"
diff --git a/share/completions/chsh.fish b/share/completions/chsh.fish
new file mode 100644
index 00000000..7608f017
--- /dev/null
+++ b/share/completions/chsh.fish
@@ -0,0 +1,10 @@
+#
+# Completions for the chsh command
+#
+
+complete -c chsh -s s -l shell -x -a "(chsh -l)" -d "Specify your login shell"
+complete -c chsh -s l -l list-shells -d "Display the list of shells listed in /etc/shells and exit"
+complete -c chsh -s u -l help -d "Display help and exit"
+complete -c chsh -s v -l version -d "Display version and exit"
+complete -x -c chsh -a "(__fish_complete_users)"
+
diff --git a/share/completions/commandline.fish b/share/completions/commandline.fish
new file mode 100644
index 00000000..337f0185
--- /dev/null
+++ b/share/completions/commandline.fish
@@ -0,0 +1,12 @@
+complete -c commandline -s a -l append -d (_ "Add text to the end of the selected area")
+complete -c commandline -s i -l insert -d (_ "Add text at cursor")
+complete -c commandline -s r -l replace -d (_ "Replace selected part")
+
+complete -c commandline -s j -l current-job -d (_ "Select job under cursor")
+complete -c commandline -s p -l current-process -d (_ "Select process under cursor")
+complete -c commandline -s t -l current-token -d (_ "Select token under cursor")
+complete -c commandline -s b -l current-buffer -d (_ "Select entire command line (default)")
+
+complete -c commandline -s c -l cut-at-cursor -d (_ "Only return that part of the command line before the cursor")
+complete -c commandline -s f -l function -d (_ "Inject readline functions to reader")
+
diff --git a/share/completions/complete.fish b/share/completions/complete.fish
new file mode 100644
index 00000000..2dcc8200
--- /dev/null
+++ b/share/completions/complete.fish
@@ -0,0 +1,14 @@
+complete -c complete -s c -l command -d (_ "Command to add completion to") -r
+complete -c complete -s p -l path -d (_ "Path to add completion to")
+complete -c complete -s s -l short-option -d (_ "Posix-style option to complete")
+complete -c complete -s l -l long-option -d (_ "GNU-style option to complete")
+complete -c complete -s o -l old-option -d (_ "Old style long option to complete")
+complete -c complete -s f -l no-files -d (_ "Do not use file completion")
+complete -c complete -s r -l require-parameter -d (_ "Require parameter")
+complete -c complete -s x -l exclusive -d (_ "Require parameter and do not use file completion")
+complete -c complete -s a -l arguments -d (_ "A list of possible arguments")
+complete -c complete -s d -l description -d (_ "Description of this completions")
+complete -c complete -s u -l unauthorative -d (_ "Option list is not complete")
+complete -c complete -s e -l erase -d (_ "Remove completion")
+complete -c complete -s h -l help -d (_ "Display help and exit")
+complete -c complete -s C -l do-complete -d (_ "Print all completions for the specified commandline")
diff --git a/share/completions/configure.fish b/share/completions/configure.fish
new file mode 100644
index 00000000..8325b573
--- /dev/null
+++ b/share/completions/configure.fish
@@ -0,0 +1,12 @@
+complete -c configure -s h -l help -x -a "short recursive" -d (_ "Display help and exit")
+complete -c configure -s V -l version -d (_ "Display version and exit")
+complete -c configure -s q -l quiet -d (_ "Quiet mode")
+complete -c configure -l cache-file -f -d (_ "Cache test results in specified file")
+complete -c configure -s C -l config-cache -d (_ "Cache test results in file config.cache")
+complete -c configure -s n -l no-create -d (_ "Do not create output files")
+complete -c configure -l srcdir -d (_ "Set source directory") -a "__fish_complete_directory (commandline -ct)" -x
+complete -c configure -l prefix -d (_ "Architecture-independent install directory") -a "__fish_complete_directory (commandline -ct)" -x
+complete -c configure -l exec-prefix -d (_ "Architecture-dependent install directory") -a "__fish_complete_directory (commandline -ct)" -x
+complete -c configure -l build -d (_ "Configure for building on BUILD") -x
+complete -c configure -l host -d (_ "Cross-compile to build programs to run on HOST") -x
+complete -c configure -l target -d (_ "Configure for building compilers for TARGET") -x -u
diff --git a/share/completions/cut.fish b/share/completions/cut.fish
new file mode 100644
index 00000000..2ccf95d0
--- /dev/null
+++ b/share/completions/cut.fish
@@ -0,0 +1,10 @@
+complete -c cut -s b -l bytes -x -d (_ "Output byte range")
+complete -c cut -s c -l characters -x -d (_ "Output character range")
+complete -c cut -s d -l delimiter -x -d (_ "Select field delimiter")
+complete -c cut -s d -l fields -x -d (_ "Select fields")
+complete -c cut -s n -d (_ "Dont split mutibyte characters")
+complete -c cut -s s -l only-delimited -d (_ "Do not print lines without delimiter")
+complete -c cut -l output-delimiter -d (_ "Select output delimiter")
+complete -c cut -l help -d (_ "Display help and exit")
+complete -c cut -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/cvs.fish b/share/completions/cvs.fish
new file mode 100644
index 00000000..e40d7c87
--- /dev/null
+++ b/share/completions/cvs.fish
@@ -0,0 +1,251 @@
+#
+# Completions for the cvs VCS command
+#
+# Incomplete, the number of switches for cvs is _huge_
+#
+
+function __fish_no_cvs_subcommand
+ set -l cvscommands add admin annotate checkout commit diff edit editors export history import init kserver log login logout pserver rannotate rdiff release remove rlog rtag server status tag unedit update version watch watchers
+ set -l -- cmd (commandline -poc)
+ set -e cmd[1]
+ for i in $cmd
+ if contains -- $i $cvscommands
+ return 1
+ end
+ end
+ return 0
+end
+
+#
+# If no subcommand has been specified, complete using all available subcommands
+#
+
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'add\t"'(_ "Add a new file/directory to the repository")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'admin\t"'(_ "Administration front end for rcs")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'annotate\t"'(_ "Show last revision where each line was modified")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'checkout\t"'(_ "Checkout sources for editing")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'commit\t"'(_ "Check files into the repository")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'diff\t"'(_ "Show differences between revisions")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'edit\t"'(_ "Get ready to edit a watched file")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'editors\t"'(_ "See who is editing a watched file")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'export\t"'(_ "Export sources from CVS, similar to checkout")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'history\t"'(_ "Show repository access history")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'import\t"'(_ "Import sources into CVS, using vendor branches")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'init\t"'(_ "Create a CVS repository if it doesnt exist")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'kserver\t"'(_ "Kerberos server mode")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'log\t"'(_ "Print out history information for files")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'login\t"'(_ "Prompt for password for authenticating server")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'logout\t"'(_ "Removes entry in .cvspass for remote repository")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'pserver\t"'(_ "Password server mode")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'rannotate\t"'(_ "Show last revision where each line of module was modified")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'rdiff\t"'(_ "Create "patch" format diffs between releases")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'release\t"'(_ "Indicate that a Module is no longer in use")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'remove\t"'(_ "Remove an entry from the repository")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'rlog\t"'(_ "Print out history information for a module")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'rtag\t"'(_ "Add a symbolic tag to a module")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'server\t"'(_ "Server mode")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'status\t"'(_ "Display status information on checked out files")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'tag\t"'(_ "Add a symbolic tag to checked out version of files")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'unedit\t"'(_ "Undo an edit command")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'update\t"'(_ "Bring work tree in sync with repository")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'version\t"'(_ "Display version and exit")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'watch\t"'(_ "Set watches")'"'
+complete -c cvs -n '__fish_no_cvs_subcommand' -xa 'watchers\t"'(_ "See who is watching a file")'"'
+
+#
+# cvs_options switches, which must be specified before a command.
+#
+
+complete -c cvs -n '__fish_no_cvs_subcommand' -x -l allow-root -d (_ "Specify legal cvsroot directory." )
+complete -c cvs -n '__fish_no_cvs_subcommand' -s a -d (_ "Authenticate all net traffic")
+complete -c cvs -n '__fish_no_cvs_subcommand' -r -s T -d (_ "Use "tmpdir" for temporary files")
+complete -c cvs -n '__fish_no_cvs_subcommand' -x -s d -d (_ "Overrides $CVSROOT as the root of the CVS tree")
+complete -c cvs -n '__fish_no_cvs_subcommand' -x -s e -d (_ "Use "editor" for editing log information")
+complete -c cvs -n '__fish_no_cvs_subcommand' -s f -d (_ "Do not use the ~/.cvsrc file")
+complete -c cvs -n '__fish_no_cvs_subcommand' -s H -d (_ "Displays usage information for command")
+complete -c cvs -n '__fish_no_cvs_subcommand' -s n -d (_ "Do not change any files")
+complete -c cvs -n '__fish_no_cvs_subcommand' -s Q -d (_ "Cause CVS to be really quiet")
+complete -c cvs -n '__fish_no_cvs_subcommand' -s R -d (_ "Read-only repository mode")
+complete -c cvs -n '__fish_no_cvs_subcommand' -s q -d (_ "Cause CVS to be somewhat quiet")
+complete -c cvs -n '__fish_no_cvs_subcommand' -s r -d (_ "Make checked-out files read-only")
+complete -c cvs -n '__fish_no_cvs_subcommand' -x -s s -d (_ "Set CVS user variable")
+complete -c cvs -n '__fish_no_cvs_subcommand' -s t -d (_ "Show trace of program execution -- try with -n")
+complete -c cvs -n '__fish_no_cvs_subcommand' -x -s v -d (_ "Display version and exit")
+complete -c cvs -n '__fish_no_cvs_subcommand' -s w -d (_ "Make checked-out files read-write (default)")
+complete -c cvs -n '__fish_no_cvs_subcommand' -s x -d (_ "Encrypt all net traffic")
+complete -c cvs -n '__fish_no_cvs_subcommand' -x -s z -d (_ "Compression level for net traffic") -a '1 2 3 4 5 6 7 8 9'
+
+#
+# Universal cvs options, which can be applied to any cvs command.
+#
+
+complete -c cvs -n '__fish_seen_subcommand_from checkout diff export history rdiff rtag update' -x -s D -d (_ "Use the most recent revision no later than date")
+complete -c cvs -n '__fish_seen_subcommand_from annotate export rdiff rtag update' -s f -d (_ "Retrieve files even when no match for tag/date")
+complete -c cvs -n '__fish_seen_subcommand_from add checkout diff import update' -x -s k -d (_ "Alter default keyword processing")
+complete -c cvs -n '__fish_seen_subcommand_from annotate checkout commit diff edit editors export log rdiff remove rtag status tag unedit update watch watchers' -s l -d (_ "Don't recurse")
+complete -c cvs -n '__fish_seen_subcommand_from add commit import' -x -s m -d (_ "Specify log message instead of invoking editor")
+complete -c cvs -n '__fish_seen_subcommand_from checkout commit export rtag' -s n -d (_ "Don't run any tag programs")
+complete -c cvs -n 'not __fish_no_cvs_subcommand' -s P -d (_ "Prune empty directories")
+complete -c cvs -n '__fish_seen_subcommand_from checkout update' -s p -d (_ "Pipe files to stdout")
+complete -c cvs -n '__fish_seen_subcommand_from annotate checkout commit diff edit editors export rdiff remove rtag status tag unedit update watch watchers' -s R -d (_ "Process directories recursively")
+complete -c cvs -n '__fish_seen_subcommand_from annotate checkout commit diff history export rdiff rtag update' -x -s r -d (_ "Use a specified tag")
+complete -c cvs -n '__fish_seen_subcommand_from import update' -r -s W -d (_ "Specify filenames to be filtered")
+
+#
+# cvs options for admin. Note that all options marked as "useless", "might not
+# work", "excessively dangerous" or "does nothing" are not included!
+#
+
+set -l admin_opt -c cvs -n 'contains admin (commandline -poc)'
+complete $admin_opt -x -s k -d (_ "Set the default keyword substitution")
+complete $admin_opt -s l -d (_ "Lock a revision")
+complete $admin_opt -x -s m -d (_ "Replace a log message")
+complete $admin_opt -x -s n -d (_ "Force name/rev association")
+complete $admin_opt -x -s N -d (_ "Make a name/rev association")
+complete $admin_opt -s q -d (_ "Run quietly")
+complete $admin_opt -x -s s -d (_ "Set a state attribute for a revision")
+complete $admin_opt -s t -d (_ "Write descriptive text from a file into RCS")
+complete $admin_opt -x -o t- -d (_ "Write descriptive text into RCS")
+complete $admin_opt -x -s l -d (_ "Unlock a revision")
+
+#
+# cvs options for annotate.
+#
+
+set -l annotate_opt -c cvs -n 'contains annotate (commandline -poc)'
+complete $annotate_opt -s f -d (_ "Annotate binary files")
+
+#
+# cvs options for checkout.
+#
+
+set -l checkout_opt -c cvs -n 'contains checkout (commandline -poc)'
+complete $checkout_opt -s A -d (_ "Reset sticky tags/dates/k-opts")
+complete $checkout_opt -s c -d (_ "Copy module file to stdout")
+complete $checkout_opt -x -s d -d (_ "Name directory for working files")
+complete $checkout_opt -x -s j -d (_ "Merge revisions")
+complete $checkout_opt -s N -d (_ "For -d. Don't shorten paths")
+
+#
+# cvs options for commit.
+#
+
+set -l commit_opt -c cvs -n 'contains commit (commandline -poc)'
+complete $commit_opt -r -s F -d (_ "Read log message from file")
+complete $commit_opt -s f -d (_ "Force new revision")
+
+#
+# cvs options for diff.
+#
+
+set -l diff_opt -c cvs -n 'contains diff (commandline -poc)'
+complete $diff_opt -s a -l text -d (_ "Treat all files as text")
+complete $diff_opt -s b -l ignore-space-change -d (_ "Treat all whitespace as one space")
+complete $diff_opt -s B -l ignore-blank-lines -d (_ "Ignore blank line only changes")
+complete $diff_opt -l binary -d (_ "Binary mode")
+complete $diff_opt -l brief -d (_ "Report only whether files differ")
+complete $diff_opt -s c -d (_ "Use context format")
+complete $diff_opt -r -s C -d (_ "Set context size")
+complete $diff_opt -l context -d (_ "Set context format and, optionally, size")
+complete $diff_opt -l changed-group-format -d (_ "Set line group format")
+complete $diff_opt -s d -l minimal -d (_ "Try to find a smaller set of changes")
+complete $diff_opt -s e -l ed -d (_ "Make output a valid ed script")
+complete $diff_opt -s t -l expand-tabs -d (_ "Expand tabs to spaces")
+complete $diff_opt -s f -l forward-ed -d (_ "Output that looks like an ed script")
+complete $diff_opt -x -s F -d (_ "Set regexp for context, unified formats")
+complete $diff_opt -s H -l speed-large-files -d (_ "Speed handling of large files with small changes")
+complete $diff_opt -x -l horizon-lines -d (_ "Set horizon lines")
+complete $diff_opt -s i -l ignore-case -d (_ "Ignore changes in case")
+complete $diff_opt -x -s I -l ignore-matching-lines -d (_ "Ignore changes matching regexp")
+complete $diff_opt -x -l ifdef -d (_ "Make ifdef from diff")
+complete $diff_opt -s w -l ignore-all-space -d (_ "Ignore whitespace")
+complete $diff_opt -s T -l initial-tab -d (_ "Start lines with a tab")
+complete $diff_opt -x -s L -l label -d (_ "Use label instead of filename in output")
+complete $diff_opt -l left-column -d (_ "Print only left column")
+complete $diff_opt -x -l line-format -d (_ "Use format to produce if-then-else output")
+complete $diff_opt -s n -l rcs -d (_ "Produce RCS-style diffs")
+complete $diff_opt -s N -l new-file -d (_ "Treat files absent from one dir as empty")
+complete $diff_opt -l new-group-format -l new-line-format -l old-group-format -l old-line-format -d (_ "Specifies line formatting")
+complete $diff_opt -s p -l show-c-function -d (_ "Identify the C function each change is in")
+complete $diff_opt -s s -l report-identical-files -d (_ "Report identical files")
+complete $diff_opt -s y -l side-by-side -d (_ "Use side-by-side format")
+complete $diff_opt -l suppress-common-lines -d (_ "Suppress common lines in side-by-side")
+complete $diff_opt -s u -l unified -d (_ "Use unified format")
+complete $diff_opt -x -s U -d (_ "Set context size in unified")
+complete $diff_opt -x -s W -l width -d (_ "Set column width for side-by-side format")
+
+#
+# cvs export options.
+#
+
+set -l export_opt -c cvs -n 'contains export (commandline -poc)'
+complete $export_opt -x -s d -d (_ "Name directory for working files")
+complete $export_opt -s N -d (_ "For -d. Don't shorten paths")
+
+#
+# cvs history options.
+# Incomplete - many are a pain to describe.
+#
+
+set -l history_opt -c cvs -n 'contains history (commandline -poc)'
+complete $history_opt -s c -d (_ "Report on each commit")
+complete $history_opt -s e -d (_ "Report on everything")
+complete $history_opt -x -s m -d (_ "Report on a module")
+complete $history_opt -s o -d (_ "Report on checked-out modules")
+complete $history_opt -s T -d (_ "Report on all tags")
+complete $history_opt -x -s x -d (_ "Specify record type") -a "F\trelease O\tcheckout E\texport T\trtag C\tcollisions G\tmerge U\t'Working file copied from repository' P\t'Working file patched to repository' W\t'Working copy deleted during update' A\t'New file added' M\t'File modified' R\t'File removed.'"
+complete $history_opt -s a -d (_ "Show history for all users")
+complete $history_opt -s l -d (_ "Show last modification only")
+complete $history_opt -s w -d (_ "Show only records for this directory")
+
+#
+# cvs import options.
+#
+
+set -l import_opt -c cvs -n 'contains import (commandline -poc)'
+complete $import_opt -x -s b -d (_ "Multiple vendor branch")
+complete $import_opt -r -s I -d (_ "Files to ignore during import")
+
+#
+# cvs log options.
+#
+
+set -l log_opt -c cvs -n 'contains log (commandline -poc)'
+complete $log_opt -s b -d (_ "Print info about revision on default branch")
+complete $log_opt -x -s d -d (_ "Specify date range for query")
+complete $log_opt -s h -d (_ "Print only file info")
+complete $log_opt -s N -d (_ "Do not print tags")
+complete $log_opt -s R -d (_ "Print only rcs filename")
+complete $log_opt -x -s r -d (_ "Print only given revisions")
+complete $log_opt -s S -d (_ "Suppress header if no revisions found")
+complete $log_opt -x -s s -d (_ "Specify revision states")
+complete $log_opt -s t -d (_ "Same as -h, plus descriptive text")
+complete $log_opt -x -s w -d (_ "Specify users for query")
+
+#
+# cvs rdiff options.
+#
+
+set -l rdiff_opt -c cvs -n 'contains rdiff (commandline -poc)'
+complete $rdiff_opt -s c -d (_ "Use context diff format")
+complete $rdiff_opt -s s -d (_ "Create summary change report")
+complete $rdiff_opt -s t -d (_ "diff top two revisions")
+complete $rdiff_opt -s u -d (_ "Use unidiff format")
+
+#
+# cvs release options.
+#
+
+complete -c cvs -n 'contains release (commandline -poc)' -s d -d (_ "Delete working copy if release succeeds")
+
+#
+# cvs update options.
+#
+
+set -l update_opt -c cvs -n 'contains update (commandline -poc)'
+complete $update_opt -s A -d (_ "Reset sticky tags, dates, and k-opts")
+complete $update_opt -s C -d (_ "Overwrite modified files with clean copies")
+complete $update_opt -s d -d (_ "Create any missing directories")
+complete $update_opt -x -s I -d (_ "Specify files to ignore")
+complete $update_opt -x -s j -d (_ "Merge revisions")
+
diff --git a/share/completions/darcs.fish b/share/completions/darcs.fish
new file mode 100644
index 00000000..b3a7ae12
--- /dev/null
+++ b/share/completions/darcs.fish
@@ -0,0 +1,236 @@
+#
+# Completions for the darcs VCS command
+#
+# Incomplete, the number of switches for darcs is _huge_
+#
+
+#
+# Test if a non-switch argument has been given
+#
+
+function __fish_use_subcommand
+ set -l -- cmd (commandline -poc)
+ set -e cmd[1]
+ for i in $cmd
+ switch $i
+ case '-*'
+ continue
+ end
+ return 1
+ end
+ return 0
+end
+
+#
+# If no subcommand has been specified, complete using all available subcommands
+#
+
+complete -c darcs -n '__fish_use_subcommand' -xa 'initialize\t"'(_ "Create new project")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'get\t"'(_ "Create a local copy of another repository")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'add\t"'(_ "Add one or more new files or directories")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'remove\t"'(_ "Remove one or more files or directories from the repository")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'mv\t"'(_ "Move/rename one or more files or directories")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'replace\t"'(_ "Replace a token with a new value for that token")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'record\t"'(_ "Save changes in the working copy to the repository as a patch")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'pull\t"'(_ "Copy and apply patches from another repository to this one")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'send\t"'(_ "Send by email a bundle of one or more patches")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'apply\t"'(_ "Apply patches (from an email bundle) to the repository")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'push\t"'(_ "Copy and apply patches from this repository to another one")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'whatsnew\t"'(_ "Display unrecorded changes in the working copy")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'changes\t"'(_ "Gives a changelog style summary of the repo history")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'unrecord\t"'(_ "Remove recorded patches without changing the working copy")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'amend-record\t"'(_ "Replace a recorded patch with a better version")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'revert\t"'(_ "Revert to the recorded version (safe the first time only)" )'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'unrevert\t"'(_ "Undo the last revert (may fail if changes after the revert)")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'unpull\t"'(_ "Opposite of pull; unsafe if the patch is not in remote repo")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'rollback\t"'(_ "Record an inverse patch without changing the working copy" )'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'tag\t"'(_ "Tag the contents of the repository with a version name")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'setpref\t"'(_ "Set a value for a preference (test, predist, ...)")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'diff\t"'(_ "Create a diff between two versions of the repository")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'annotate\t"'(_ "Display which patch last modified something")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'optimize\t"'(_ "Optimize the repository")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'check\t"'(_ "Check the repository for consistency")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'resolve\t"'(_ "Mark any conflicts to the working copy for manual resolution")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'dist\t"'(_ "Create a distribution tarball")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'trackdown\t"'(_ "Locate the most recent version lacking an error")'"'
+complete -c darcs -n '__fish_use_subcommand' -xa 'repair\t"'(_ "Repair the corrupted repository")'"'
+
+#
+# These switches are universal
+#
+complete -c darcs -s h -l help -d (_ "Shows brief description of command and its arguments")
+complete -c darcs -l disable -d (_ "Disable this command")
+complete -c darcs -l repodir -d (_ "Specify the repository directory in which to run") -x -a '(__fish_complete_directory (commandline -ct))'
+complete -c darcs -s v -l verbose -d (_ "Verbose mode")
+complete -c darcs -l standard-verbosity -d (_ "Neither verbose nor quiet output")
+
+#
+# Here follows a huge list of subcommand-specific completions. These are incomplete.
+#
+
+set -l record_opt -c darcs -n 'contains record (commandline -poc)'
+complete $record_opt -s m -l patch-name -d (_ "Name of patch") -x
+complete $record_opt -s A -l author -d (_ "Specify author id") -x
+complete $record_opt -l logfile -d (_ "Give patch name and comment in file") -r
+complete $record_opt -s a -l all -d (_ "Answer yes to all patches")
+complete $record_opt -s l -l look-for-adds -d (_ "In addition to modifications, look for files that are not boring, and thus are potentially pending addition")
+complete $record_opt -l delete-logfile -d (_ "Delete the logfile when done")
+complete $record_opt -l no-test -d (_ "Don't run the test script")
+complete $record_opt -l test -d (_ "Run the test script")
+complete $record_opt -l leave-test-directory -d (_ "Don't remove the test directory")
+complete $record_opt -l remove-test-directory -d (_ "Remove the test directory")
+complete $record_opt -l compress -d (_ "Create compressed patches")
+complete $record_opt -l dont-compress -d (_ "Don't create compressed patches")
+complete $record_opt -l pipe -d (_ "Expect to receive input from a pipe")
+complete $record_opt -l interactive -d (_ "Prompt user interactively")
+complete $record_opt -l ask-deps -d (_ "Ask for extra dependencies")
+complete $record_opt -l no-ask-deps -d (_ "Don't ask for extra dependencies")
+complete $record_opt -l edit-long-comment -d (_ "Edit the long comment by default")
+complete $record_opt -l skip-long-comment -d (_ "Don't give a long comment")
+complete $record_opt -l prompt-long-comment -d (_ "Prompt for whether to edit the long comment")
+complete $record_opt -l ignore-times -d (_ "Don't trust the file modification times")
+complete $record_opt -l dont-look-for-adds -d (_ "Don't look for any files or directories that could be added, and don't add them automatically")
+
+
+set -l pull_opt -c darcs -n 'contains pull (commandline -poc)'
+complete $pull_opt -s p -l patches -d (_ "Select patches matching REGEXP") -x
+complete $pull_opt -s t -l tags -d (_ "Select tags matching REGEXP") -x
+complete $pull_opt -s a -l all -d (_ "Answer yes to all patches")
+complete $pull_opt -s s -l summary -d (_ "Summarize changes")
+complete $pull_opt -s q -l quiet -d (_ "Suppress informational output")
+complete $pull_opt -l matches -d (_ "Select patches matching PATTERN") -x
+complete $pull_opt -l external-merge -d (_ "Use external tool to merge conflicts") -x
+complete $pull_opt -l interactive -d (_ "Prompt user interactively")
+complete $pull_opt -l compress -d (_ "Create compressed patches")
+complete $pull_opt -l dont-compress -d (_ "Don't create compressed patches")
+complete $pull_opt -l test -d (_ "Run the test script")
+complete $pull_opt -l no-test -d (_ "Don't run the test script")
+complete $pull_opt -l dry-run -d (_ "Don't actually take the action")
+complete $pull_opt -l no-summary -d (_ "Don't summarize changes")
+complete $pull_opt -l ignore-times -d (_ "Don't trust the file modification times")
+complete $pull_opt -l no-deps -d (_ "Don't automatically fulfill dependencies")
+complete $pull_opt -l set-default -d (_ "Set default repository [DEFAULT]")
+complete $pull_opt -l no-set-default -d (_ "Don't set default repository")
+complete $pull_opt -l set-scripts-executable -d (_ "Make scripts executable")
+complete $pull_opt -l dont-set-scripts-executable -d (_ "Don't make scripts executable")
+
+
+set -l apply_opt -c darcs -n 'contains apply (commandline -poc)'
+complete $apply_opt -s a -l all -d (_ "Answer yes to all patches")
+complete $apply_opt -l verify -d (_ "Verify that the patch was signed by a key in PUBRING") -r
+complete $apply_opt -l verify-ssl -d (_ "Verify using openSSL with authorized keys from specified file") -r
+complete $apply_opt -l sendmail-command -d (_ "Specify sendmail command") -r
+complete $apply_opt -l reply -d (_ "Reply to email-based patch using FROM address") -x
+complete $apply_opt -l cc -d (_ "Mail results to additional EMAIL(s). Requires --reply") -x
+complete $apply_opt -l external-merge -d (_ "Use external tool to merge conflicts") -r
+complete $apply_opt -l no-verify -d (_ "Don't verify patch signature")
+complete $apply_opt -l ignore-times -d (_ "Don't trust the file modification times")
+complete $apply_opt -l compress -d (_ "Create compressed patches")
+complete $apply_opt -l dont-compress -d (_ "Don't create compressed patches")
+complete $apply_opt -l interactive -d (_ "Prompt user interactively")
+complete $apply_opt -l mark-conflicts -d (_ "Mark conflicts")
+complete $apply_opt -l allow-conflicts -d (_ "Allow conflicts, but don't mark them")
+complete $apply_opt -l dont-allow-conflicts -d (_ "Fail on patches that create conflicts [DEFAULT]")
+complete $apply_opt -l no-test -d (_ "Don't run the test script")
+complete $apply_opt -l test -d (_ "Run the test script")
+complete $apply_opt -l happy-forwarding -d (_ "Forward unsigned messages without extra header")
+complete $apply_opt -l leave-test-directory -d (_ "Don't remove the test directory")
+complete $apply_opt -l remove-test-directory -d (_ "Remove the test directory")
+complete $apply_opt -l set-scripts-executable -d (_ "Make scripts executable")
+complete $apply_opt -l dont-set-scripts-executable -d (_ "Don't make scripts executable")
+
+
+set -l check_opt -c darcs -n 'contains check (commandline -poc)'
+complete $check_opt -s v -l verbose -d (_ "Verbose mode")
+complete $check_opt -s q -l quiet -d (_ "Suppress informational output")
+complete $check_opt -l complete -d (_ "Check the entire repository")
+complete $check_opt -l partial -d (_ "Check patches since latest checkpoint")
+complete $check_opt -l no-test -d (_ "Don't run the test script")
+complete $check_opt -l test -d (_ "Run the test script")
+complete $check_opt -l leave-test-directory -d (_ "Don't remove the test directory")
+complete $check_opt -l remove-test-directory -d (_ "Remove the test directory")
+
+
+set -l mv_opt -c darcs -n 'contains mv (commandline -poc)'
+complete $mv_opt -s v -l verbose -d (_ "Verbose mode")
+complete $mv_opt -l case-ok -d (_ "Don't refuse to add files differing only in case")
+
+
+set -l send_opt -c darcs -n 'contains send (commandline -poc)'
+complete $send_opt -s v -l verbose -d (_ "Verbose mode")
+complete $send_opt -s q -l quiet -d (_ "Suppress informational output")
+complete $send_opt -xs p -l patches -d (_ "Select patches matching REGEXP")
+complete $send_opt -xs t -l tags -d (_ "Select tags matching REGEXP")
+complete $send_opt -s a -l all -d (_ "Answer yes to all patches")
+complete $send_opt -xs A -l author -d (_ "Specify author id")
+complete $send_opt -rs o -l output -d (_ "Specify output filename")
+complete $send_opt -s u -l unified -d (_ "Output patch in a darcs-specific format similar to diff -u")
+complete $send_opt -s s -l summary -d (_ "Summarize changes")
+complete $send_opt -xl matches -d (_ "Select patches matching PATTERN")
+complete $send_opt -l interactive -d (_ "Prompt user interactively")
+complete $send_opt -xl from -d (_ "Specify email address")
+complete $send_opt -xl to -d (_ "Specify destination email")
+complete $send_opt -xl cc -d (_ "Mail results to additional EMAIL(s). Requires --reply")
+complete $send_opt -l sign -d (_ "Sign the patch with your gpg key")
+complete $send_opt -xl sign-as -d (_ "Sign the patch with a given keyid")
+complete $send_opt -rl sign-ssl -d (_ "Sign the patch using openssl with a given private key")
+complete $send_opt -l dont-sign -d (_ "Do not sign the patch")
+complete $send_opt -l dry-run -d (_ "Don't actually take the action")
+complete $send_opt -l no-summary -d (_ "Don't summarize changes")
+complete $send_opt -rl context -d (_ "Send to context stored in FILENAME")
+complete $send_opt -l edit-description -d (_ "Edit the patch bundle description")
+complete $send_opt -l set-default -d (_ "Set default repository [DEFAULT]")
+complete $send_opt -l no-set-default -d (_ "Don't set default repository")
+complete $send_opt -rl sendmail-command -d (_ "Specify sendmail command")
+
+
+set -l init_opt -c darcs -n 'contains initialize (commandline -poc)'
+complete $init_opt -l plain-pristine-tree -d (_ "Use a plain pristine tree [DEFAULT]")
+complete $init_opt -l no-pristine-tree -d (_ "Use no pristine tree")
+
+
+set -l annotate_opt -c darcs -n 'contains annotate (commandline -poc)'
+complete $annotate_opt -s s -l summary -d (_ "Summarize changes")
+complete $annotate_opt -l no-summary -d (_ "Don't summarize changes")
+complete $annotate_opt -s u -l unified -d (_ "Output patch in a darcs-specific format similar to diff -u")
+complete $annotate_opt -l human-readable -d (_ "Give human readable output")
+complete $annotate_opt -l xml-output -d (_ "Generate XML formatted output")
+complete $annotate_opt -l match -x -d (_ "Select patch matching PATTERN")
+complete $annotate_opt -s p -l patch -x -d (_ "Select patch matching REGEXP")
+complete $annotate_opt -s t -l tag -x -d (_ "Select tag matching REGEXP")
+complete $annotate_opt -l creator-hash -x -d (_ "Specify hash of creator patch (see docs)")
+
+
+set -l changes_opt -c darcs -n 'contains changes (commandline -poc)'
+complete $changes_opt -l to-match -x -d (_ "Select changes up to a patch matching PATTERN")
+complete $changes_opt -l to-patch -x -d (_ "Select changes up to a patch matching REGEXP")
+complete $changes_opt -l to-tag -x -d (_ "Select changes up to a tag matching REGEXP")
+complete $changes_opt -l from-match -x -d (_ "Select changes starting with a patch matching PATTERN")
+complete $changes_opt -l from-patch -x -d (_ "Select changes starting with a patch matching REGEXP")
+complete $changes_opt -l from-tag -x -d (_ "Select changes starting with a tag matching REGEXP")
+complete $changes_opt -l last -x -d (_ "Select the last NUMBER patches")
+complete $changes_opt -l matches -x -d (_ "Select patches matching PATTERN")
+complete $changes_opt -s p -l patches -x -d (_ "Select patches matching REGEXP")
+complete $changes_opt -s t -l tags -x -d (_ "Select tags matching REGEXP")
+complete $changes_opt -l context -d (_ "Give output suitable for get --context")
+complete $changes_opt -l xml-output -d (_ "Generate XML formatted output")
+complete $changes_opt -l human-readable -d (_ "Give human-readable output")
+complete $changes_opt -s s -l summary -d (_ "Summarize changes")
+complete $changes_opt -l no-summary -d (_ "Don't summarize changes")
+complete $changes_opt -s q -l quiet -d (_ "Suppress informational output")
+complete $changes_opt -l reverse -d (_ "Show changes in reverse order")
+complete $changes_opt -l repo -x -d (_ "Specify the repository URL")
+
+
+set -l add_opt -c darcs -n 'contains add (commandline -poc)'
+complete $add_opt -l boring -d (_ "Don't skip boring files")
+complete $add_opt -l case-ok -d (_ "Don't refuse to add files differing only in case")
+complete $add_opt -s r -l recursive -d (_ "Add contents of subdirectories")
+complete $add_opt -l not-recursive -d (_ "Don't add contents of subdirectories")
+complete $add_opt -l date-trick -d (_ "Add files with date appended to avoid conflict. [EXPERIMENTAL]")
+complete $add_opt -l no-date-trick -d (_ "Don't use experimental date appending trick. [DEFAULT]")
+complete $add_opt -s q -l quiet -d (_ "Suppress informational output")
+complete $add_opt -l dry-run -d (_ "Don't actually take the action")
+complete $add_opt -s q -l quiet -d (_ "Suppress informational output")
+
+
diff --git a/share/completions/date.fish b/share/completions/date.fish
new file mode 100644
index 00000000..863080b6
--- /dev/null
+++ b/share/completions/date.fish
@@ -0,0 +1,11 @@
+complete -c date -s d -l date -d (_ "Display date described by string") -x
+complete -c date -s f -l file -d (_ "Display date for each line in file") -r
+complete -c date -s I -l iso-8601 -d (_ "Output in ISO 8601 format") -x -a "date hours minutes seconds"
+complete -c date -s s -l set -d (_ "Set time") -x
+complete -c date -s R -l rfc-2822 -d (_ "Output RFC-2822 compliant date string")
+complete -c date -s r -l reference -d (_ "Display the last modification time of file") -r
+complete -c date -s u -l utc -d (_ "Print or set Coordinated Universal Time")
+complete -c date -l universal -d (_ "Print or set Coordinated Universal Time")
+complete -c date -s h -l help -d (_ "Display help and exit")
+complete -c date -s v -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/df.fish b/share/completions/df.fish
new file mode 100644
index 00000000..9cbb75d5
--- /dev/null
+++ b/share/completions/df.fish
@@ -0,0 +1,38 @@
+#
+# Completions for df
+#
+
+#
+# Test if we are using GNU sed
+#
+
+set -l is_gnu
+df --version >/dev/null ^/dev/null; and set is_gnu --is-gnu
+
+__fish_gnu_complete -c df -s h -l human-readable -d (_ "Human readable sizes") $is_gnu
+__fish_gnu_complete -c df -s i -l inodes -d (_ "List inode information") $is_gnu
+__fish_gnu_complete -c df -s k -d (_ "Use 1kB block size") $is_gnu
+__fish_gnu_complete -c df -s l -l local -d (_ "List only local filesystems") $is_gnu
+__fish_gnu_complete -c df -s P -l portability -d (_ "Use Posix format") $is_gnu
+__fish_gnu_complete -c df -s t -l type -r -d (_ "Show filesystems of specified type") $is_gnu -x -a "(__fish_print_filesystems)"
+
+if test -n "$is_gnu"
+
+ complete -c df -s a -l all -d (_ "Include empty filesystems")
+ complete -c df -s B -l block-size -r -d (_ "Block size")
+ complete -c df -s H -l si -d (_ "Human readable sizes, powers of 1000")
+ complete -c df -l no-sync -d (_ "Do not sync before getting usage info")
+ complete -c df -l sync -d (_ "Sync before getting usage info")
+ complete -c df -s T -l print-type -d (_ "Print filesystem type")
+ complete -c df -s x -l exclude-type -d (_ "Excluded filesystem type") -r -x -a "(__fish_print_filesystems)"
+ complete -c df -l help -d (_ "Display help and exit")
+ complete -c df -l version -d (_ "Display version and exit")
+
+else
+
+ complete -c df -s a -d (_ "Show all filesystems")
+ complete -c df -s g -d (_ "Show sizes in gigabytes")
+ complete -c df -s m -d (_ "Show sizes in megabytes")
+ complete -c df -s n -d (_ "Print out the previously obtained statistics from the file systems")
+
+end
diff --git a/share/completions/diff.fish b/share/completions/diff.fish
new file mode 100644
index 00000000..1adbf235
--- /dev/null
+++ b/share/completions/diff.fish
@@ -0,0 +1,26 @@
+# Completions for diff
+complete -c diff -s i -l ignore-case -d (_ "Ignore case differences")
+complete -c diff -l ignore-file-name-case -d (_ "Ignore case when comparing file names")
+complete -c diff -l no-ignore-file-name-case -d (_ "Consider case when comparing file names")
+complete -c diff -s E -l ignore-tab-expansion -d (_ "Ignore changes due to tab expansion")
+complete -c diff -s b -l ignore-space-change -d (_ "Ignore changes in the amount of white space")
+complete -c diff -s w -l ignore-all-space -d (_ "Ignore all white space")
+complete -c diff -s B -l ignore-blank-lines -d (_ "Ignore changes whose lines are all blank")
+complete -c diff -s I -l ignore-matching-lines -x -d (_ "Ignore changes whose lines match the REGEX")
+complete -c diff -s a -l text -d (_ "Treat all files as text")
+complete -c diff -s r -l recursive -d (_ "Recursively compare subdirectories")
+complete -c diff -s N -l new-file -d (_ "Treat absent files as empty")
+complete -c diff -s C -l context -x -d (_ "Output NUM lines of copied context")
+complete -c diff -s c -d (_ "Output 3 lines of copied context")
+complete -c diff -s U -l unified -x -d (_ "Output NUM lines of unified context")
+complete -c diff -s u -d (_ "Output 3 lines of unified context")
+complete -c diff -s q -l brief -d (_ "Output only whether the files differ")
+complete -c diff -l normal -d (_ "Output a normal diff")
+complete -c diff -s y -l side-by-side -d (_ "Output in two columns")
+complete -c diff -s W -l width -x -d (_ "Output at most NUM print columns")
+complete -c diff -s d -l minimal -d (_ "Try to find a smaller set of changes")
+complete -c diff -l from-file -r -d (_ "Compare FILE1 to all operands")
+complete -c diff -l to-file -r -d (_ "Compare FILE2 to all operands")
+complete -c diff -s l -l paginate -d (_ "Pass the output through 'pr'")
+complete -c diff -s v -l version -d (_ "Display version and exit")
+complete -c diff -l help -d (_ "Display help and exit")
diff --git a/share/completions/du.fish b/share/completions/du.fish
new file mode 100644
index 00000000..761dd92c
--- /dev/null
+++ b/share/completions/du.fish
@@ -0,0 +1,20 @@
+complete -c du -s a -l all -d (_ "Write size for all files")
+complete -c du -l apparent-size -d (_ "Print file size, not disk usage")
+complete -c du -s B -l block-size -d (_ "Block size")
+complete -c du -s b -l bytes -d (_ "Use 1B block size")
+complete -c du -s c -l total -d (_ "Produce grand total")
+complete -c du -s D -l dereference-args -d (_ "Dereference file symlinks")
+complete -c du -s h -l human-readable -d (_ "Human readable sizes")
+complete -c du -s H -l si -d (_ "Human readable sizes, powers of 1000")
+complete -c du -s k -d (_ "Use 1kB block size")
+complete -c du -s l -l count-links -d (_ "Count hard links multiple times")
+complete -c du -s L -l dereference -d (_ "Dereference all symlinks")
+complete -c du -s S -l separate-dirs -d (_ "Do not include subdirectory size")
+complete -c du -s s -l summarize -d (_ "Display only a total for each argument")
+complete -c du -s x -l one-file-system -d (_ "Skip other filesystems")
+complete -c du -s X -l exclude-from -r -d (_ "Exclude files thet match pattern in file")
+complete -c du -l exclude -r -d (_ "Exclude files that match pattern")
+complete -c du -l max-depth -r -d (_ "Recursion limit")
+complete -c du -l help -d (_ "Display help and exit")
+complete -c du -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/echo.fish b/share/completions/echo.fish
new file mode 100644
index 00000000..09fbca9a
--- /dev/null
+++ b/share/completions/echo.fish
@@ -0,0 +1,5 @@
+complete -c echo -s n -d (_ "No newline")
+complete -c echo -s e -d (_ "Use backslash escaped characters")
+complete -c echo -s E -d (_ "Do not use backslash escaped characters")
+complete -c echo -l help -d (_ "Display help and exit")
+complete -c echo -l version -d (_ "Display version and exit")
diff --git a/share/completions/elatex.fish b/share/completions/elatex.fish
new file mode 100644
index 00000000..68294ba4
--- /dev/null
+++ b/share/completions/elatex.fish
@@ -0,0 +1,2 @@
+__fish_complete_tex elatex
+
diff --git a/share/completions/emacs.fish b/share/completions/emacs.fish
new file mode 100644
index 00000000..09408aee
--- /dev/null
+++ b/share/completions/emacs.fish
@@ -0,0 +1,10 @@
+#
+# These completions are uncomplete
+#
+complete -c emacs -s q -d (_ "Do not load init files")
+complete -c emacs -s u -d (_ "Load users init file") -xa "(__fish_complete_users)"
+complete -c emacs -s t -d (_ "Use file as terminal") -r
+complete -c emacs -s f -d (_ "Execute Lisp function") -x
+complete -c emacs -s l -d (_ "Load Lisp code from file") -r
+complete -c emacs -o nw -d (_ "Do not use X interface")
+complete -uc emacs -s d -o display -d (_ "Create window on the specified display") -x
diff --git a/share/completions/emerge.fish b/share/completions/emerge.fish
new file mode 100644
index 00000000..2f6c0d7f
--- /dev/null
+++ b/share/completions/emerge.fish
@@ -0,0 +1,68 @@
+#Completions for emerge
+
+function __fish_emerge_use_package -d (_ 'Test if emerge command should have packages as potential completion')
+ for i in (commandline -opc)
+ if contains -- $i -a --ask -p --pretend --oneshot -O --nodeps -f --fetchonly
+ return 0
+ end
+ end
+ return 1
+end
+
+function __fish_emerge_manipulate_package -d (_ 'Tests if emerge command should have package as potential completion for removal')
+ for i in (commandline -opc)
+ if contains -- $i -u --update -C --unmerge -P --prune
+ return 0
+ end
+ end
+ return 1
+end
+
+function __fish_emerge_print_installed_pkgs -d (_ 'Prints completions for installed packages on the system from /var/db/pkg')
+ if test -d /var/db/pkg
+ find /var/db/pkg/ -type d | cut -d'/' -f6 | sort | uniq | sed 's/-[0-9]\{1,\}\..*$//'
+ return
+ end
+end
+
+complete -f -c emerge -n '__fish_emerge_use_package' -a '(__fish_print_packages)' -d (_ 'Package')
+complete -f -c emerge -n '__fish_emerge_manipulate_package' -a '(__fish_emerge_print_installed_pkgs)' -d (_ 'Package')
+complete -c emerge -s h -l help -d (_ "Display help and exit")
+complete -c emerge -s c -l clean -d (_ "Cleans the system by removing outdated packages")
+complete -c emerge -l depclean -d (_ "Cleans the system by removing packages that are not associated with explicitly merged packages")
+complete -c emerge -l info -d (_ "Displays important portage variables that will be exported to ebuild.sh when performing merges")
+complete -c emerge -l metadata -d (_ "Causes portage to process all the metacache files as is normally done on the tail end of an rsync update using emerge --sync")
+complete -c emerge -s P -l prune -d (_ "Removes all but the most recently installed version of a package from your system")
+complete -c emerge -l regen -d (_ "Causes portage to check and update the dependency cache of all ebuilds in the portage tree")
+complete -c emerge -s s -l search -d (_ "Searches for matches of the supplied string in the current local portage tree")
+complete -c emerge -s C -l unmerge -d (_ "Removes all matching packages completely from your system")
+complete -c emerge -s a -l ask -d (_ "Before performing the merge, display what ebuilds and tbz2s will be installed, in the same format as when using --pretend")
+complete -c emerge -s b -l buildpkg -d (_ "Tell emerge to build binary packages for all ebuilds processed in addition to actually merging the packages")
+complete -c emerge -s B -l buildpkgonly -d (_ "Creates a binary package, but does not merge it to the system")
+complete -c emerge -s l -l changelog -d (_ "When pretending, also display the ChangeLog entries for packages that will be upgraded")
+complete -c emerge -l columns -d (_ "Display the pretend output in a tabular form")
+complete -c emerge -s d -l debug -d (_ "Tell emerge to run the ebuild command in --debug mode")
+complete -c emerge -s D -l deep -d (_ "When used in conjunction with --update, this flag forces emerge to consider the entire dependency tree of packages, instead of checking only the immediate dependencies of the packages")
+complete -c emerge -s e -l emptytree -d (_ "Virtually tweaks the tree of installed packages to contain nothing")
+complete -c emerge -s f -l fetchonly -d (_ "Instead of doing any package building, just perform fetches for all packages (main package as well as all dependencies)")
+complete -c emerge -l fetch-all-uri -d (_ "Same as --fetchonly except that all package files, including those not required to build the package, will be processed")
+complete -c emerge -s g -l getbinpkg -d (_ "Using the server and location defined in PORTAGE_BINHOST, portage will download the information from each binary file there and it will use that information to help build the dependency list")
+complete -c emerge -s G -l getbinpkgonly -d (_ "This option is identical to -g, except it will not use ANY information from the local machine")
+complete -c emerge -s N -l newuse -d (_ "Tells emerge to include installed packages where USE flags have changed since installation")
+complete -c emerge -l noconfmem -d (_ "Merge files in CONFIG_PROTECT to the live fs instead of silently dropping them")
+complete -c emerge -s O -l nodeps -d (_ "Merge specified packages, but don't merge any dependencies")
+complete -c emerge -s n -l noreplace -d (_ "Skip the packages specified on the command-line that have already been installed")
+complete -c emerge -l nospinner -d (_ "Disables the spinner regardless of terminal type")
+complete -c emerge -l oneshot -d (_ "Emerge as normal, but don't add packages to the world profile")
+complete -c emerge -s o -l onlydeps -d (_ "Only merge (or pretend to merge) the dependencies of the specified packages, not the packages themselves")
+complete -c emerge -s p -l pretend -d (_ "Do not merge, display what ebuilds and tbz2s would have been installed")
+complete -c emerge -s q -l quiet -d (_ "Reduced output from portage's displays")
+complete -c emerge -l resume -d (_ "Resumes the last merge operation")
+complete -c emerge -s S -l searchdesc -d (_ "Matches the search string against the description field as well the package's name")
+complete -c emerge -l skipfirst -d (_ "Remove the first package in the resume list so that a merge may continue in the presence of an uncorrectable or inconsequential error")
+complete -c emerge -s t -l tree -d (_ "Shows the dependency tree using indentation for dependencies")
+complete -c emerge -s u -l update -d (_ "Updates packages to the best version available")
+complete -c emerge -s k -l usepkg -d (_ "Tell emerge to use binary packages (from $PKGDIR) if they are available, thus possibly avoiding some time-consuming compiles")
+complete -c emerge -s K -l usepkgonly -d (_ "Like --usepkg, except this only allows the use of binary packages, and it will abort the emerge if the package is not available at the time of dependency calculation")
+complete -c emerge -s v -l verbose -d (_ "Increased or expanded display of content in portage's displays")
+complete -c emerge -s V -l version -d (_ "Displays the currently installed version of portage along with other information useful for quick reference on a system")
diff --git a/share/completions/etex.fish b/share/completions/etex.fish
new file mode 100644
index 00000000..b0280a37
--- /dev/null
+++ b/share/completions/etex.fish
@@ -0,0 +1 @@
+__fish_complete_tex etex
diff --git a/share/completions/fish.fish b/share/completions/fish.fish
new file mode 100644
index 00000000..b49f98a1
--- /dev/null
+++ b/share/completions/fish.fish
@@ -0,0 +1,6 @@
+complete -c fish -s c -l "command" -d (_ "Run fish with this command")
+complete -c fish -s h -l help -d (_ "Display help and exit")
+complete -c fish -s v -l version -d (_ "Display version and exit")
+complete -c fish -s i -l interactive -d (_ "Run in interactive mode")
+complete -c fish -s l -l login -d (_ "Run in login mode")
+complete -c fish -s p -l profile -d (_ "Output profiling information to specified file") -f
diff --git a/share/completions/function.fish b/share/completions/function.fish
new file mode 100644
index 00000000..25194511
--- /dev/null
+++ b/share/completions/function.fish
@@ -0,0 +1,8 @@
+complete -c function -s d -l description -d (_ "Set function description") -x
+complete -c function -xa "(functions -n)" -d (_ "Function")
+complete -c function -xa "(builtin -n)" -d (_ "Builtin")
+complete -c function -s j -l on-job-exit -d (_ "Make the function a job exit event handler") -x
+complete -c function -s p -l on-process-exit -d (_ "Make the function a process exit event handler") -x
+complete -c function -s s -l on-signal -d (_ "Make the function a signal event handler") -x
+complete -c function -s v -l on-variable -d (_ "Make the function a variable update event handler") -x
+complete -c function -s b -l key-binding -d (_ "Allow dash (-) in function name")
diff --git a/share/completions/functions.fish b/share/completions/functions.fish
new file mode 100644
index 00000000..3095c4bf
--- /dev/null
+++ b/share/completions/functions.fish
@@ -0,0 +1,6 @@
+complete -c functions -s e -l erase -d (_ "Erase function") -x -a "(functions -n)"
+complete -c functions -xa "(functions -na)" -d (_ "Function")
+complete -c functions -s a -l all -d (_ "Show hidden functions")
+complete -c functions -s h -l help -d (_ "Display help and exit")
+complete -c functions -s d -l description -d (_ "Set function description") -x
+
diff --git a/share/completions/fusermount.fish b/share/completions/fusermount.fish
new file mode 100644
index 00000000..56ddcd4e
--- /dev/null
+++ b/share/completions/fusermount.fish
@@ -0,0 +1,17 @@
+#
+# Completions for fusermount
+#
+# Find mount points, borrowed from umount.fish
+#
+complete -c fusermount -d (_ "Mount point") -x -a '
+(
+ cat /etc/mtab | grep "^sshfs" | cut -d " " -f 1-2|tr " " \n|sed -e "s/[0-9\.]*:\//\//"|grep "^/"
+)
+'
+
+complete -c fusermount -s h -d (_ "Display help and exit")
+complete -c fusermount -s v -d (_ "Display version and exit")
+complete -c fusermount -s o -x -d (_ "Mount options")
+complete -c fusermount -s u -d (_ "Unmount")
+complete -c fusermount -s q -d (_ "Quiet")
+complete -c fusermount -s z -d (_ "Lazy unmount")
diff --git a/share/completions/gcc.fish b/share/completions/gcc.fish
new file mode 100644
index 00000000..bb1ecd13
--- /dev/null
+++ b/share/completions/gcc.fish
@@ -0,0 +1,96 @@
+#
+# The gcc completion list is incomplete. There are just so many of them...
+#
+
+complete -c gcc -s x -d (_ "Language") -x -a '
+ c
+ c-header
+ cpp-output
+ c++
+ c++-cpp-output
+ objective-c
+ objc-cpp-output
+ assembler
+ assembler-with-cpp
+ ada
+ f77
+ f77-cpp-input
+ ratfor
+ java
+ treelang
+ none
+'
+complete -c gcc -o pass-exit-codes -d (_ "Pass program exit codes")
+complete -c gcc -s c -d (_ "Stop after assembler")
+complete -c gcc -s S -d (_ "Stop after compile")
+complete -c gcc -s E -d (_ "Stop after preprocessor")
+complete -c gcc -s o -r -d (_ "Output file")
+complete -c gcc -s v -d (_ "Print commands to stderr")
+complete -c gcc -o \#\#\# -d (_ "Print quoted commands to stderr, do not run")
+complete -c gcc -o pipe -d (_ "Use pipes")
+complete -c gcc -o ansi -d (_ "Use ansi mode")
+complete -c gcc -o std -d (_ "Standard mode") -x -a '
+ c89\t"ISO C90"
+ iso9899:1990\t"ISO C90"
+ iso9899:199409\t"ISO C90 as modified in amendment 1"
+ c99\t"ISO C99"
+ c9x \t"ISO C99"
+ iso9899:1999\t"ISO C99"
+ iso9899:199x\t"ISO C99"
+ gnu89\t"ISO C90 plus GNU extentions"
+ gnu99\t"ISO C99 plus GNU extentions"
+ gnu9x\t"ISO C99 plus GNU extentions"
+ c++98\t"ISO C++98"
+ gnu++98\t"ISO C++98 plus GNU extentions"
+'
+complete -c gcc -o aux-info -r -d (_ "Write prototypes to file")
+complete -c gcc -o fno-asm -d (_ "Do not recognize asm, inline or typeof keywords")
+complete -c gcc -o fno-builtin -d (_ "Do not use builtin functions")
+complete -c gcc -o fhosted -d (_ "Assert hosted environment")
+complete -c gcc -o ffreestanding -d (_ "Assert freestanding environment")
+complete -c gcc -o fms-extensions -d (_ "Use Microsoft extensions")
+complete -c gcc -o trigraphs -d (_ "Use ANSI trigraphs")
+complete -c gcc -o no-integrated-cpp -d (_ "Do not use integrated preprocessor")
+complete -c gcc -o funsigned-char -d (_ "char is unsigned")
+complete -c gcc -o fsigned-char -d (_ "char is signed")
+complete -c gcc -o funsigned-bitfields -d (_ "bitfield is unsigned")
+complete -c gcc -o fsigned-bitfields -d (_ "bitfield is signed")
+complete -c gcc -o fno-unsigned-bitfields -d (_ "All bitfields are signed")
+complete -c gcc -o fno-signed-bitfields -d (_ "All bitfields are unsigned")
+complete -c gcc -o fwritable-strings -d (_ "String constants are not const")
+complete -c gcc -o fabi-version -d (_ "C++ ABI version") -r -x -a '1 0'
+complete -c gcc -o fno-access-control -d (_ "Turn off access checking")
+complete -c gcc -o fcheck-new -d (_ "Check pointer returned by new")
+complete -c gcc -o fconserve-space -d (_ "Put globals in the common segment")
+complete -c gcc -o fno-const-strings -d (_ "String constants are not const")
+complete -c gcc -o fdollars-in-identifiers -d (_ "Accept \$ in identifiers")
+complete -c gcc -o fno-dollars-in-identifiers -d (_ "Reject \$ in identifiers")
+complete -c gcc -o fno-elide-constructors -d (_ "Do not omit unneeded temporarys")
+complete -c gcc -o fno-enforce-eh-specs -d (_ "Allow exception violations")
+complete -c gcc -o ffor-scope -d (_ "Do not extend for-loop scope")
+complete -c gcc -o fno-for-scope -d (_ "Extend for-loop scope")
+complete -c gcc -o fno-gnu-keywords -d (_ "Do not recognize typeof as keyword")
+complete -c gcc -o fno-implicit-templates -d (_ "Do not emit code for implicit templates")
+complete -c gcc -o fno-implicit-inline-templates -d (_ "Do not emit code for implicit inline templates")
+complete -c gcc -o fno-implement-inlines -d (_ "Do not emit out-of-line code for inline functions")
+complete -c gcc -o fms-extensions -d (_ "Disable warnings about MFC")
+complete -c gcc -o fno-nonansi-builtins -d (_ "Disable some built-in functions")
+complete -c gcc -o fno-operator-names -d (_ "Disable operator keywords")
+complete -c gcc -o fno-optional-diags -d (_ "Disable optional diagnostics")
+complete -c gcc -o fpermissive -d (_ "Downgrade some errors to warnings")
+complete -c gcc -o frepo -d (_ "Enable automatic template instantiation at link time")
+complete -c gcc -o fno-rtti -d (_ "Disable generation of C++ runtime type information")
+#complete -c gcc -o fstats -d (_ "Emit front-end usage statistics")
+
+for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17;
+ complete -c gcc -o ftemplate-depth-1 -d (printf (_ "Set maximum template depth to %s") $i);
+end;
+
+complete -c gcc -o fno-threadsafe-statistics -d (_ "Do not emit code for thread-safe initialization of local statics")
+complete -c gcc -o fuse-cxa-atexit -d (_ "Use __cxa_atexit for destructors")
+complete -c gcc -o fvisibility-inlines-hidden -d (_ "Hides inline methods from export table")
+complete -c gcc -o fno-weak -d (_ "Do not use weak symbol support")
+# gcc completion listing is incomplete.
+#complete -c gcc -o -d (_ "")
+
+
diff --git a/share/completions/gpg.fish b/share/completions/gpg.fish
new file mode 100644
index 00000000..355bde48
--- /dev/null
+++ b/share/completions/gpg.fish
@@ -0,0 +1,324 @@
+#
+# Completions for the gpg command.
+#
+# This program accepts an rather large number of switches. It allows
+# you to do things like changing what file descriptor errors should be
+# written to, to make gpg use a different locale than the one
+# specified in the environment or to specify an alternative home
+# directory.
+
+# Switches related to debugging, switches whose use is not
+# recommended, switches whose behaviour is as of yet undefined,
+# switches for experimental features, switches to make gpg compliant
+# to legacy pgp-versions, dos-specific switches, switches meant for
+# the options file and deprecated or obsolete switches have all been
+# removed. The remaining list of completions is still quite
+# impressive.
+
+#
+# Various functions used for dynamic completions
+#
+
+function __fish_complete_gpg_user_id -d "Complete using gpg user ids"
+ # gpg doesn't seem to like it when you use the whole key name as a
+ # completion, so we skip the <EMAIL> part and use it a s a
+ # description.
+ gpg --list-keys --with-colon|cut -d : -f 10|sed -ne 's/\(.*\) <\(.*\)>/\1\t\2/p'
+end
+
+function __fish_complete_gpg_key_id -d 'Complete using gpg key ids'
+ # Use user_id as the description
+ gpg --list-keys --with-colons|cut -d : -f 5,10|sed -ne "s/\(.*\):\(.*\)/\1\t\2/p"
+end
+
+function __fish_print_gpg_algo -d "Complete using all algorithms of the type specified in argv[1] supported by gpg. argv[1] is a regexp"
+ # Set a known locale, so that the output format of 'gpg --version'
+ # is at least somewhat predictable. The locale will automatically
+ # expire when the function goes out of scope, and the original locale
+ # will take effect again.
+ set -lx LC_ALL C
+ gpg --version | grep "$argv:"| grep -v "Home:"|cut -d : -f 2 |tr , \n|tr -d " "
+end
+
+
+#
+# gpg subcommands
+#
+
+complete -c gpg -s s -l sign -d (_ "Make a signature")
+complete -c gpg -l clearsign -d (_ "Make a clear text signature")
+complete -c gpg -s b -l detach-sign -d (_ "Make a detached signature")
+complete -c gpg -s e -l encrypt -d (_ "Encrypt data")
+complete -c gpg -s c -l symmetric -d (_ "Encrypt with a symmetric cipher using a passphrase")
+complete -c gpg -l store -d (_ "Store only (make a simple RFC1991 packet)")
+complete -c gpg -l decrypt -d (_ "Decrypt specified file or stdin")
+complete -c gpg -l verify -d (_ "Assume specified file or stdin is sigfile and verify it")
+complete -c gpg -l multifile -d (_ "Modify certain other commands to accept multiple files for processing")
+complete -c gpg -l verify-files -d (_ "Identical to '--multifile --verify'")
+complete -c gpg -l encrypt-files -d (_ "Identical to '--multifile --encrypt'")
+complete -c gpg -l decrypt-files -d (_ "Identical to --multifile --decrypt")
+
+complete -c gpg -l list-keys -xa "(__fish_append , (__fish_complete_gpg_user_id) )" -d (_ "List all keys from the public keyrings, or just the ones given on the command line")
+complete -c gpg -l list-public-keys -xa "(__fish_append , (__fish_complete_gpg_user_id) )" -d (_ "List all keys from the public keyrings, or just the ones given on the command line")
+complete -c gpg -s K -l list-secret-keys -xa "(__fish_append , (__fish_complete_gpg_user_id) )" -d (_ "List all keys from the secret keyrings, or just the ones given on the command line")
+complete -c gpg -l list-sigs -xa "(__fish_append , (__fish_complete_gpg_user_id))" -d (_ "Same as --list-keys, but the signatures are listed too")
+
+complete -c gpg -l check-sigs -xa "(__fish_append , (__fish_complete_gpg_user_id))" -d (_ "Same as --list-keys, but the signatures are listed and verified")
+complete -c gpg -l fingerprint -xa "(__fish_append , (__fish_complete_gpg_user_id))" -d (_ "List all keys with their fingerprints")
+complete -c gpg -l gen-key -d (_ "Generate a new key pair")
+
+complete -c gpg -l edit-key -d (_ "Present a menu which enables you to do all key related tasks") -xa "(__fish_complete_gpg_user_id)"
+
+complete -c gpg -l sign-key -xa "(__fish_complete_gpg_user_id)" -d (_ "Sign a public key with your secret key")
+complete -c gpg -l lsign-key -xa "(__fish_complete_gpg_user_id)" -d (_ "Sign a public key with your secret key but mark it as non exportable")
+
+complete -c gpg -l delete-key -xa "(__fish_complete_gpg_user_id)" -d (_ "Remove key from the public keyring")
+complete -c gpg -l delete-secret-key -xa "(__fish_complete_gpg_user_id)" -d (_ "Remove key from the secret and public keyring")
+complete -c gpg -l delete-secret-and-public-key -xa "(__fish_complete_gpg_user_id)" -d (_ "Same as --delete-key, but if a secret key exists, it will be removed first")
+
+complete -c gpg -l gen-revoke -xa "(__fish_complete_gpg_user_id)" -d (_ "Generate a revocation certificate for the complete key")
+complete -c gpg -l desig-revoke -xa "(__fish_complete_gpg_user_id)" -d (_ "Generate a designated revocation certificate for a key")
+
+complete -c gpg -l export -xa "(__fish_append , (__fish_complete_gpg_user_id))" -d (_ "Export all or the given keys from all keyrings" )
+complete -c gpg -l send-keys -xa "(__fish_append , (__fish_complete_gpg_user_id))" -d (_ "Same as --export but sends the keys to a keyserver")
+complete -c gpg -l export-secret-keys -xa "(__fish_complete_gpg_user_id)" -d (_ "Same as --export, but exports the secret keys instead")
+complete -c gpg -l export-secret-subkeys -xa "(__fish_complete_gpg_user_id)" -d (_ "Same as --export, but exports the secret keys instead")
+
+complete -c gpg -l import -xa "(__fish_complete_gpg_user_id)" -d (_ "Import/merge keys" )
+complete -c gpg -l fast-import -xa "(__fish_complete_gpg_user_id)" -d (_ "Import/merge keys" )
+
+complete -c gpg -l recv-keys -xa "(__fish_complete_gpg_key_id)" -d (_ "Import the keys with the given key IDs from a keyserver")
+complete -c gpg -l refresh-keys -xa "(__fish_complete_gpg_key_id)" -d (_ "Request updates from a keyserver for keys that already exist on the local keyring")
+complete -c gpg -l search-keys -xa "(__fish_append , (__fish_complete_gpg_user_id) )" -d (_ "Search the keyserver for the given names")
+complete -c gpg -l update-trustdb -d (_ "Do trust database maintenance")
+complete -c gpg -l check-trustdb -d (_ "Do trust database maintenance without user interaction")
+
+complete -c gpg -l export-ownertrust -d (_ "Send the ownertrust values to stdout")
+complete -c gpg -l import-ownertrust -d (_ "Update the trustdb with the ownertrust values stored in specified files or stdin")
+
+complete -c gpg -l rebuild-keydb-caches -d (_ "Create signature caches in the keyring")
+
+complete -c gpg -l print-md -xa "(__fish_print_gpg_algo Hash)" -d (_ "Print message digest of specified algorithm for all given files or stdin")
+complete -c gpg -l print-mds -d (_ "Print message digest of all algorithms for all given files or stdin")
+
+complete -c gpg -l gen-random -xa "0 1 2" -d (_ "Emit specified number of random bytes of the given quality level")
+
+complete -c gpg -l version -d (_ "Display version and supported algorithms, and exit")
+complete -c gpg -l warranty -d (_ "Display warranty and exit")
+complete -c gpg -s h -l help -d (_ "Display help and exit")
+
+
+#
+# gpg options
+#
+
+complete -c gpg -s a -l armor -d (_ "Create ASCII armored output")
+complete -c gpg -s o -l output -r -d (_ "Write output to specified file")
+
+complete -c gpg -l max-output -d (_ "Sets a limit on the number of bytes that will be generated when processing a file") -x
+
+complete -c gpg -s u -l local-user -xa "(__fish_complete_gpg_user_id)" -d (_ "Use specified key as the key to sign with")
+complete -c gpg -l default-key -xa "(__fish_complete_gpg_user_id)" -d (_ "Use specified key as the default key to sign with")
+
+complete -c gpg -s r -l recipient -xa "(__fish_complete_gpg_user_id)" -d (_ "Encrypt for specified user id")
+complete -c gpg -s R -l hidden-recipient -xa "(__fish_complete_gpg_user_id)" -d (_ "Encrypt for specified user id, but hide the keyid of the key")
+complete -c gpg -l default-recipient -xa "(__fish_complete_gpg_user_id)" -d (_ "Use specified user id as default recipient")
+complete -c gpg -l default-recipient-self -d (_ "Use the default key as default recipient")
+complete -c gpg -l no-default-recipient -d (_ "Reset --default-recipient and --default-recipient-self")
+
+complete -c gpg -s v -l verbose -d (_ "Give more information during processing")
+complete -c gpg -s q -l quiet -d (_ "Quiet mode")
+
+complete -c gpg -s z -d (_ "Compression level") -xa "(seq 1 9)"
+complete -c gpg -l compress-level -d (_ "Compression level") -xa "(seq 1 9)"
+complete -c gpg -l bzip2-compress-level -d (_ "Compression level") -xa "(seq 1 9)"
+complete -c gpg -l bzip2-decompress-lowmem -d (_ "Use a different decompression method for BZIP2 compressed files")
+
+complete -c gpg -s t -l textmode -d (_ "Treat input files as text and store them in the OpenPGP canonical text form with standard 'CRLF' line endings")
+complete -c gpg -l no-textmode -d (_ "Don't treat input files as text and store them in the OpenPGP canonical text form with standard 'CRLF' line endings")
+
+complete -c gpg -s n -l dry-run -d (_ "Don't make any changes (this is not completely implemented)")
+
+complete -c gpg -s i -l interactive -d (_ "Prompt before overwrite")
+
+complete -c gpg -l batch -d (_ "Batch mode")
+complete -c gpg -l no-batch -d (_ "Don't use batch mode")
+complete -c gpg -l no-tty -d (_ "Never write output to terminal")
+
+complete -c gpg -l yes -d (_ "Assume yes on most questions")
+complete -c gpg -l no -d (_ "Assume no on most questions")
+
+complete -c gpg -l ask-cert-level -d (_ "Prompt for a certification level when making a key signature")
+complete -c gpg -l no-ask-cert-level -d (_ "Don't prompt for a certification level when making a key signature")
+complete -c gpg -l default-cert-level -xa "0\t'Not verified' 1\t'Not verified' 2\t'Caual verification' 3\t'Extensive verification'" -d (_ "The default certification level to use for the level check when signing a key")
+complete -c gpg -l min-cert-level -xa "0 1 2 3" -d (_ "Disregard any signatures with a certification level below specified level when building the trust database")
+
+complete -c gpg -l trusted-key -xa "(__fish_complete_gpg_key_id)" -d (_ "Assume that the specified key is as trustworthy as one of your own secret keys")
+complete -c gpg -l trust-model -xa "pgp classic direct always" -d (_ "Specify trust model")
+
+complete -c gpg -l keyid-format -xa "short 0xshort long 0xlong" -d (_ "Select how to display key IDs")
+
+complete -c gpg -l keyserver -x -d (_ "Use specified keyserver")
+complete -c gpg -l keyserver-options -xa "(__fish_append , include-revoked include-disabled honor-keyserver-url include-subkeys use-temp-files keep-temp-files verbose timeout http-proxy auto-key-retrieve)" -d (_ "Options for the keyserver")
+
+complete -c gpg -l import-options -xa "(__fish_append , import-local-sigs repair-pks-subkey-bug merge-only)" -d (_ "Options for importing keys")
+complete -c gpg -l export-options -xa "(__fish_append , export-local-sigs export-attributes export-sensitive-revkeys export-minimal)" -d (_ "Options for exporting keys")
+complete -c gpg -l list-options -xa "(__fish_append , show-photos show-policy-urls show-notations show-std-notations show-user-notations show-keyserver-urls show-uid-validity show-unusable-uids show-unusable-subkeys show-keyring show-sig-expire show-sig-subpackets )" -d (_ "Options for listing keys and signatures")
+complete -c gpg -l verify-options -xa "(__fish_append , show-photos show-policy-urls show-notations show-std-notations show-user-notations show-keyserver-urls show-uid-validity show-unusable-uids)" -d (_ "Options for verifying signatures")
+
+complete -c gpg -l photo-viewer -r -d (_ "The command line that should be run to view a photo ID")
+complete -c gpg -l exec-path -r -d (_ "Sets a list of directories to search for photo viewers and keyserver helpers")
+
+complete -c gpg -l show-keyring -d (_ "Display the keyring name at the head of key listings to show which keyring a given key resides on")
+complete -c gpg -l keyring -r -d (_ "Add specified file to the current list of keyrings")
+
+complete -c gpg -l secret-keyring -r -d (_ "Add specified file to the current list of secret keyrings")
+complete -c gpg -l primary-keyring -r -d (_ "Designate specified file as the primary public keyring")
+
+complete -c gpg -l trustdb-name -r -d (_ "Use specified file instead of the default trustdb")
+complete -c gpg -l homedir -xa "(__fish_complete_directory (commandline -ct))" -d (_ "Set the home directory")
+complete -c gpg -l display-charset -xa " iso-8859-1 iso-8859-2 iso-8859-15 koi8-r utf-8 " -d (_ "Set the native character set")
+
+complete -c gpg -l utf8-strings -d (_ "Assume that following command line arguments are given in UTF8")
+complete -c gpg -l no-utf8-strings -d (_ "Assume that following arguments are encoded in the character set specified by --display-charset")
+complete -c gpg -l options -r -d (_ "Read options from specified file, do not read the default options file")
+complete -c gpg -l no-options -d (_ "Shortcut for '--options /dev/null'")
+complete -c gpg -l load-extension -x -d (_ "Load an extension module")
+
+complete -c gpg -l status-fd -x -d (_ "Write special status strings to the specified file descriptor")
+complete -c gpg -l logger-fd -x -d (_ "Write log output to the specified file descriptor")
+complete -c gpg -l attribute-fd -d (_ "Write attribute subpackets to the specified file descriptor")
+
+complete -c gpg -l sk-comments -d (_ "Include secret key comment packets when exporting secret keys")
+complete -c gpg -l no-sk-comments -d (_ "Don't include secret key comment packets when exporting secret keys")
+
+complete -c gpg -l comment -x -d (_ "Use specified string as comment string")
+complete -c gpg -l no-comments -d (_ "Don't use a comment string")
+
+complete -c gpg -l emit-version -d (_ "Include the version string in ASCII armored output")
+complete -c gpg -l no-emit-version -d (_ "Don't include the version string in ASCII armored output")
+
+complete -c gpg -l sig-notation -x
+complete -c gpg -l cert-notation -x
+
+complete -c gpg -s N -l set-notation -x -d (_ "Put the specified name value pair into the signature as notation data")
+complete -c gpg -l sig-policy-url -x -d (_ "Set signature policy")
+complete -c gpg -l cert-policy-url -x -d (_ "Set certificate policy")
+complete -c gpg -l set-policy-url -x -d (_ "Set signature and certificate policy")
+complete -c gpg -l sig-keyserver-url -x -d (_ "Use specified URL as a preferred keyserver for data signatures")
+
+complete -c gpg -l set-filename -x -d (_ "Use specified string as the filename which is stored inside messages")
+
+complete -c gpg -l for-your-eyes-only -d (_ "Set the 'for your eyes only' flag in the message")
+complete -c gpg -l no-for-your-eyes-only -d (_ "Clear the 'for your eyes only' flag in the message")
+
+complete -c gpg -l use-embedded-filename -d (_ "Create file with name as given in data")
+complete -c gpg -l no-use-embedded-filename -d (_ "Don't create file with name as given in data")
+
+complete -c gpg -l completes-needed -x -d (_ "Number of completely trusted users to introduce a new key signer (defaults to 1)")
+complete -c gpg -l marginals-needed -x -d (_ "Number of marginally trusted users to introduce a new key signer (defaults to 3)")
+
+complete -c gpg -l max-cert-depth -x -d (_ "Maximum depth of a certification chain (default is 5)")
+
+complete -c gpg -l cipher-algo -xa "(__fish_print_gpg_algo Cipher)" -d (_ "Use specified cipher algorithm")
+complete -c gpg -l digest-algo -xa "(__fish_print_gpg_algo Hash)" -d (_ "Use specified message digest algorithm")
+complete -c gpg -l compress-algo -xa "(__fish_print_gpg_algo Compression)" -d (_ "Use specified compression algorithm")
+complete -c gpg -l cert-digest-algo -xa "(__fish_print_gpg_algo Hash)" -d (_ "Use specified message digest algorithm when signing a key")
+complete -c gpg -l s2k-cipher-algo -xa "(__fish_print_gpg_algo Cipher)" -d (_ "Use specified cipher algorithm to protect secret keys")
+complete -c gpg -l s2k-digest-algo -xa "(__fish_print_gpg_algo Hash)" -d (_ "Use specified digest algorithm to mangle the passphrases")
+complete -c gpg -l s2k-mode -xa "0\t'Plain passphrase' 1\t'Salted passphrase' 3\t'Repeated salted mangling'" -d (_ "Selects how passphrases are mangled")
+
+complete -c gpg -l simple-sk-checksum -d (_ "Integrity protect secret keys by using a SHA-1 checksum" )
+
+complete -c gpg -l disable-cipher-algo -xa "(__fish_print_gpg_algo Cipher)" -d (_ "Never allow the use of specified cipher algorithm")
+complete -c gpg -l disable-pubkey-algo -xa "(__fish_print_gpg_algo Pubkey)" -d (_ "Never allow the use of specified public key algorithm")
+
+complete -c gpg -l no-sig-cache -d (_ "Do not cache the verification status of key signatures")
+complete -c gpg -l no-sig-create-check -d (_ "Do not verify each signature right after creation")
+
+complete -c gpg -l auto-check-trustdb -d (_ "Automatically run the --check-trustdb command internally when needed")
+complete -c gpg -l no-auto-check-trustdb -d (_ "Never automatically run the --check-trustdb")
+
+complete -c gpg -l throw-keyids -d (_ "Do not put the recipient keyid into encrypted packets")
+complete -c gpg -l no-throw-keyids -d (_ "Put the recipient keyid into encrypted packets")
+complete -c gpg -l not-dash-escaped -d (_ "Change the behavior of cleartext signatures so that they can be used for patch files")
+
+complete -c gpg -l escape-from-lines -d (_ "Mangle From-field of email headers (default)")
+complete -c gpg -l no-escape-from-lines -d (_ "Do not mangle From-field of email headers")
+
+complete -c gpg -l passphrase-fd -x -d (_ "Read passphrase from specified file descriptor")
+complete -c gpg -l command-fd -x -d (_ "Read user input from specified file descriptor")
+
+complete -c gpg -l use-agent -d (_ "Try to use the GnuPG-Agent")
+complete -c gpg -l no-use-agent -d (_ "Do not try to use the GnuPG-Agent")
+complete -c gpg -l gpg-agent-info -x -d (_ "Override value of GPG_AGENT_INFO environment variable")
+
+complete -c gpg -l force-v3-sigs -d (_ "Force v3 signatures for signatures on data")
+complete -c gpg -l no-force-v3-sigs -d (_ "Do not force v3 signatures for signatures on data")
+
+complete -c gpg -l force-v4-certs -d (_ "Always use v4 key signatures even on v3 keys")
+complete -c gpg -l no-force-v4-certs -d (_ "Don't use v4 key signatures on v3 keys")
+
+complete -c gpg -l force-mdc -d (_ "Force the use of encryption with a modification detection code")
+complete -c gpg -l disable-mdc -d (_ "Disable the use of the modification detection code")
+
+complete -c gpg -l allow-non-selfsigned-uid -d (_ "Allow the import and use of keys with user IDs which are not self-signed")
+complete -c gpg -l no-allow-non-selfsigned-uid -d (_ "Do not allow the import and use of keys with user IDs which are not self-signed")
+
+complete -c gpg -l allow-freeform-uid -d (_ "Disable all checks on the form of the user ID while generating a new one")
+
+complete -c gpg -l ignore-time-conflict -d (_ "Do not fail if signature is older than key")
+complete -c gpg -l ignore-valid-from -d (_ "Allow subkeys that have a timestamp from the future")
+complete -c gpg -l ignore-crc-error -d (_ "Ignore CRC errors")
+complete -c gpg -l ignore-mdc-error -d (_ "Do not fail on MDC integrity protection failure")
+
+complete -c gpg -l lock-once -d (_ "Lock the databases the first time a lock is requested and do not release the lock until the process terminates")
+complete -c gpg -l lock-multiple -d (_ "Release the locks every time a lock is no longer needed")
+
+complete -c gpg -l no-random-seed-file -d (_ "Do not create an internal pool file for quicker generation of random numbers")
+complete -c gpg -l no-verbose -d (_ "Reset verbose level to 0")
+complete -c gpg -l no-greeting -d (_ "Suppress the initial copyright message")
+complete -c gpg -l no-secmem-warning -d (_ "Suppress the warning about 'using insecure memory'")
+complete -c gpg -l no-permission-warning -d (_ "Suppress the warning about unsafe file and home directory (--homedir) permissions")
+complete -c gpg -l no-mdc-warning -d (_ "Suppress the warning about missing MDC integrity protection")
+
+complete -c gpg -l require-secmem -d (_ "Refuse to run if GnuPG cannot get secure memory")
+
+complete -c gpg -l no-require-secmem -d (_ "Do not refuse to run if GnuPG cannot get secure memory (default)")
+complete -c gpg -l no-armor -d (_ "Assume the input data is not in ASCII armored format")
+
+complete -c gpg -l no-default-keyring -d (_ "Do not add the default keyrings to the list of keyrings")
+
+complete -c gpg -l skip-verify -d (_ "Skip the signature verification step")
+
+complete -c gpg -l with-colons -d (_ "Print key listings delimited by colons")
+complete -c gpg -l with-key-data -d (_ "Print key listings delimited by colons (like --with-colons) and print the public key data")
+complete -c gpg -l with-fingerprint -d (_ "Same as the command --fingerprint but changes only the format of the output and may be used together with another command")
+
+complete -c gpg -l fast-list-mode -d (_ "Changes the output of the list commands to work faster")
+complete -c gpg -l fixed-list-mode -d (_ "Do not merge primary user ID and primary key in --with-colon listing mode and print all timestamps as UNIX timestamps")
+
+complete -c gpg -l list-only -d (_ "Changes the behaviour of some commands. This is like --dry-run but different")
+
+complete -c gpg -l show-session-key -d (_ "Display the session key used for one message")
+complete -c gpg -l override-session-key -x -d (_ "Don't use the public key but the specified session key")
+
+complete -c gpg -l ask-sig-expire -d (_ "Prompt for an expiration time")
+complete -c gpg -l no-ask-sig-expire -d (_ "Do not prompt for an expiration time")
+
+complete -c gpg -l ask-cert-expire -d (_ "Prompt for an expiration time")
+complete -c gpg -l no-ask-cert-expire -d (_ "Do not prompt for an expiration time")
+
+complete -c gpg -l try-all-secrets -d (_ "Don't look at the key ID as stored in the message but try all secret keys in turn to find the right decryption key")
+complete -c gpg -l enable-special-filenames -d (_ "Enable a mode in which filenames of the form -&n, where n is a non-negative decimal number, refer to the file descriptor n and not to a file with that name")
+
+complete -c gpg -l group -x -d (_ "Sets up a named group, which is similar to aliases in email programs")
+complete -c gpg -l ungroup -d (_ "Remove a given entry from the --group list")
+complete -c gpg -l no-groups -d (_ "Remove all entries from the --group list")
+
+complete -c gpg -l preserve-permissions -d (_ "Don't change the permissions of a secret keyring back to user read/write only")
+
+complete -c gpg -l personal-cipher-preferences -x -d (_ "Set the list of personal cipher preferences to the specified string")
+complete -c gpg -l personal-digest-preferences -x -d (_ "Set the list of personal digest preferences to the specified string")
+complete -c gpg -l personal-compress-preferences -x -d (_ "Set the list of personal compression preferences to the specified string")
+complete -c gpg -l default-preference-list -x -d (_ "Set the list of default preferences to the specified string")
diff --git a/share/completions/gprof.fish b/share/completions/gprof.fish
new file mode 100644
index 00000000..09ad4712
--- /dev/null
+++ b/share/completions/gprof.fish
@@ -0,0 +1,34 @@
+complete -c gprof -s A -l annoted-source -d (_ "Print annotated source")
+complete -c gprof -s b -l brief -d (_ "Do not print explanations")
+complete -c gprof -s C -l exec-counts -d (_ "Print tally")
+complete -c gprof -s i -l file-info -d (_ "Display summary")
+complete -c gprof -s I -l directory-path -d (_ "Search directories for source")
+complete -c gprof -s J -l no-annotated-source -d (_ "No annotated source")
+complete -c gprof -s L -l print-path -d (_ "Print full path of source")
+complete -c gprof -s p -l flat-profile -d (_ "Print flat profile")
+complete -c gprof -s P -l no-flat-profile -d (_ "No flat profile")
+complete -c gprof -s q -l graph -d (_ "Print call graph")
+complete -c gprof -s Q -l no-graph -d (_ "No call graph")
+complete -c gprof -s y -l separate-files -d (_ "Annotate to file")
+complete -c gprof -s Z -l no-exec-counts -d (_ "No tally")
+complete -c gprof -l function-ordering -d (_ "Suggest function ordering")
+complete -rc gprof -l file-ordering -d (_ "Suggest file ordering")
+complete -c gprof -s T -l traditional -d (_ "Traditional mode")
+complete -xc gprof -s w -l width -d (_ "Set width of output")
+complete -c gprof -s x -l all-lines -d (_ "Annotate every line")
+complete -xc gprof -l demangle -d (_ "Set demangling style")
+complete -c gprof -l no-demangle -d (_ "Turn of demangling")
+complete -xc gprof -s a -l no-static -d (_ "Supress static functions")
+complete -xc gprof -s c -l static-call-graph
+complete -xc gprof -s D -l ignore-non-functions -d (_ "Ignore symbols not known to be functions")
+complete -xc gprof -s k -r -d (_ "Delete arcs from callgraph")
+complete -xc gprof -s l -l line -d (_ "Line by line profiling")
+complete -xc gprof -s m -l min-count -r -d (_ "Supress output when executed less than specified times")
+complete -xc gprof -s n -l time -d (_ "Only propagate times for matching symbols")
+complete -xc gprof -s N -l no-time -d (_ "Do not propagate times for matching symbols")
+complete -xc gprof -s z -l display-unused-functions -d (_ "Mention unused functions in flat profile")
+complete -xc gprof -s d -l debug -d (_ "Specify debugging options")
+complete -xc gprof -s h -l help -d (_ "Display help and exit")
+complete -xc gprof -s v -l version -d (_ "Display version and exit")
+complete -xc gprof -s O -l file-format -x -a "auto bsd 4.4bsd magic prof" -d (_ "Profile data format")
+complete -xc gprof -s s -l sum -d (_ "Print summary")
diff --git a/share/completions/grep.fish b/share/completions/grep.fish
new file mode 100644
index 00000000..de96facf
--- /dev/null
+++ b/share/completions/grep.fish
@@ -0,0 +1,50 @@
+#
+# Completions for the grep command
+#
+
+complete -c grep -s A -l after-context -d (_ "Print NUM lines of trailing context")
+complete -c grep -s a -l text -d (_ "Process binary file as text")
+complete -c grep -s B -l before-context -d (_ "Print NUM lines of leading context")
+complete -c grep -s C -l context -d (_ "Print NUM lines of context")
+complete -c grep -s b -l byte-offset -d (_ "Print byte offset of matches")
+complete -c grep -l binary-files -d (_ "Assume data type for binary files") -x -a "binary text"
+complete -c grep -l colour -x -a "never always auto"
+complete -c grep -l color -x -a "never always auto"
+complete -c grep -s c -l count -d (_ "Only print number of matches")
+complete -c grep -s D -l devices -x -a "read skip" -d (_ "Action for devices")
+complete -c grep -s d -l directories -x -a "read skip recurse" -d (_ "Action for directories")
+complete -c grep -s E -l extended-regexp -d (_ "Pattern is extended regexp")
+complete -xc grep -s e -l regexp -d (_ "Pattern is a regexp")
+complete -c grep -s F -l fixed -d (_ "Pattern is a fixed string")
+complete -c grep -s f -l file -r -d (_ "Use pattern from file")
+complete -c grep -s G -l basic-regexp -d (_ "Pattern is basic regex")
+complete -c grep -s H -l with-filename -d (_ "Print filename")
+complete -c grep -s h -l no-filename -d (_ "Supress printing filename")
+complete -c grep -l help -d (_ "Display help and exit")
+complete -c grep -s I -d (_ "Skip binary files")
+complete -c grep -s i -l ignore-case -d (_ "Ignore case")
+complete -c grep -s L -l files-without-match -d (_ "Print first non-matching file")
+complete -c grep -s l -l files-with-match -d (_ "Print first matching file")
+complete -c grep -s m -l max-count -d (_ "Stop reading after NUM matches")
+complete -c grep -l mmap -d (_ "Use the mmap system call to read input")
+complete -c grep -s n -l line-number -d (_ "Print linenumber")
+complete -c grep -s o -l only-matching -d (_ "Show only matching part")
+complete -c grep -l label -d (_ "Rename stdin")
+complete -c grep -l line-buffered -d (_ "Use line buffering")
+complete -c grep -s q -l quiet -d (_ "Do not write anything")
+complete -c grep -l silent -d (_ "Do not write anything")
+complete -c grep -s R -l recursive -d (_ "Read files under each directory")
+complete -c grep -s r -d (_ "Read files under each directory")
+complete -c grep -l include -d (_ "Recurse, search file matching PATTERN")
+complete -c grep -l exclude -d (_ "Recurse, skip file matching PATTERN")
+complete -c grep -s s -l no-messages -d (_ "Suppress error messages")
+complete -c grep -s U -l binary -d (_ "Treat files as binary")
+complete -c grep -s u -l unix-byte-offsets -d (_ "Report Unix-style byte offsets")
+complete -c grep -s V -l version -d (_ "Display version and exit")
+complete -c grep -s v -l invert-match -d (_ "Invert the sense of matching")
+complete -c grep -s w -l word-regexp -d (_ "Only whole matching words")
+complete -c grep -s x -l line-regexp -d (_ "Only whole matching lines")
+complete -c grep -s y -d (_ "Synonym for -i")
+complete -c grep -s Z -l null -d (_ "Output a zero byte after filename")
+
+
diff --git a/share/completions/gunzip.fish b/share/completions/gunzip.fish
new file mode 100644
index 00000000..f15c8d78
--- /dev/null
+++ b/share/completions/gunzip.fish
@@ -0,0 +1,25 @@
+complete -c gunzip -s c -l stdout -d (_ "Compress to stdout")
+complete -c gunzip -x -a "(
+ __fish_complete_suffix (commandline -ct) .gz 'Compressed file'
+ __fish_complete_suffix (commandline -ct) .tgz 'Compressed archive'
+)
+"
+complete -c gunzip -s f -l force -d (_ "Overwrite")
+complete -c gunzip -s h -l help -d (_ "Display help and exit")
+complete -c gunzip -s l -l list -d (_ "List compression information")
+complete -c gunzip -s L -l license -d (_ "Print license")
+complete -c gunzip -s n -l no-name -d (_ "Do not save/restore filename")
+complete -c gunzip -s N -l name -d (_ "Save/restore filename")
+complete -c gunzip -s q -l quiet -d (_ "Supress warnings")
+complete -c gunzip -s r -l recursive -d (_ "Recurse directories")
+complete -c gunzip -s S -l suffix -r -d (_ "Suffix")
+complete -c gunzip -s t -l test -d (_ "Check integrity")
+complete -c gunzip -s v -l verbose -d (_ "Display compression ratios")
+complete -c gunzip -s V -l version -d (_ "Display version and exit")
+
+complete -c gunzip -x -a "(
+ __fish_complete_suffix (commandline -ct) .gz 'Compressed file'
+ __fish_complete_suffix (commandline -ct) .tgz 'Compressed archive'
+)
+"
+
diff --git a/share/completions/gzip.fish b/share/completions/gzip.fish
new file mode 100644
index 00000000..ca84d8ae
--- /dev/null
+++ b/share/completions/gzip.fish
@@ -0,0 +1,23 @@
+complete -c gzip -s c -l stdout -d (_ "Compress to stdout")
+complete -c gzip -s d -l decompress -x -a "
+(
+ __fish_complete_suffix (commandline -ct) .gz 'Compressed file'
+ __fish_complete_suffix (commandline -ct) .tgz 'Compressed archive'
+)
+"
+
+complete -c gzip -s f -l force -d (_ "Overwrite")
+complete -c gzip -s h -l help -d (_ "Display help and exit")
+complete -c gzip -s l -l list -d (_ "List compression information")
+complete -c gzip -s L -l license -d (_ "Print license")
+complete -c gzip -s n -l no-name -d (_ "Do not save/restore filename")
+complete -c gzip -s N -l name -d (_ "Save/restore filename")
+complete -c gzip -s q -l quiet -d (_ "Supress warnings")
+complete -c gzip -s r -l recursive -d (_ "Recurse directories")
+complete -c gzip -s S -l suffix -r -d (_ "Suffix")
+complete -c gzip -s t -l test -d (_ "Check integrity")
+complete -c gzip -s v -l verbose -d (_ "Display compression ratios")
+complete -c gzip -s V -l version -d (_ "Display version and exit")
+complete -c gzip -s 1 -l fast -d (_ "Use fast setting")
+complete -c gzip -s 9 -l best -d (_ "Use high compression setting")
+
diff --git a/share/completions/help.fish b/share/completions/help.fish
new file mode 100644
index 00000000..1763a936
--- /dev/null
+++ b/share/completions/help.fish
@@ -0,0 +1,36 @@
+#
+# Completions for the help command
+#
+
+for i in (builtin -n)
+ complete -c help -x -a $i -d (printf (_ "Help for the '%s' builtin") $i)
+end
+
+for i in count dirh dirs help mimedb nextd open popd prevd pushd set_color psub umask type
+ complete -c help -x -a $i -d (printf (_ "Help for the '%s' command") $i )
+end
+
+for i in syntax todo bugs history;
+ complete -c help -x -a $i -d (printf (_ "Help section on %s") $i)
+end
+
+complete -c help -x -a completion -d (_ "Help on how tab-completion works")
+complete -c help -x -a job-control -d (_ "Help on how job control works")
+complete -c help -x -a difference -d (_ "Summary on how fish differs from other shells")
+
+complete -c help -x -a prompt -d (_ "Help on how to set the prompt")
+complete -c help -x -a title -d (_ "Help on how to set the titlebar message")
+complete -c help -x -a killring -d (_ "Help on how to copy and paste")
+complete -c help -x -a editor -d (_ "Help on editor shortcuts")
+complete -c help -x -a variables -d (_ "Help on environment variables")
+complete -c help -x -a color -d (_ "Help on setting syntax highlighting colors")
+complete -c help -x -a builtin-overview -d (_ "A short summary of all builtin commands")
+
+complete -c help -x -a globbing -d (_ "Help on parameter expansion (Globbing)")
+complete -c help -x -a expand -d (_ "Help on parameter expansion (Globbing)")
+complete -c help -x -a expand-variable -d (_ "Help on variable expansion \$VARNAME")
+complete -c help -x -a expand-home -d (_ "Help on home directory expansion ~USER")
+complete -c help -x -a expand-brace -d (_ "Help on brace expansion {a,b,c}")
+complete -c help -x -a expand-wildcard -d (_ "Help on wildcard expansion *.*")
+complete -c help -x -a expand-command-substitution -d (_ "Help on command substitution (SUBCOMMAND)")
+complete -c help -x -a expand-process -d (_ "Help on process expansion %JOB")
diff --git a/share/completions/id.fish b/share/completions/id.fish
new file mode 100644
index 00000000..9826f434
--- /dev/null
+++ b/share/completions/id.fish
@@ -0,0 +1,8 @@
+complete -c id -s g -l group -d (_ "Print effective group id")
+complete -c id -s G -l groups -d (_ "Print all group ids")
+complete -c id -s n -l name -d (_ "Print name, not number")
+complete -c id -s r -l real -d (_ "Print real ID, not effective")
+complete -c id -s u -l user -d (_ "Print effective user ID")
+complete -c id -l help -d (_ "Display help and exit")
+complete -c id -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/ifconfig.fish b/share/completions/ifconfig.fish
new file mode 100644
index 00000000..ab1481e7
--- /dev/null
+++ b/share/completions/ifconfig.fish
@@ -0,0 +1,25 @@
+complete -x -c ifconfig -a down -d (_ "Stop interface")
+complete -x -c ifconfig -a up -d (_ "Start interface")
+complete -x -c ifconfig -a "
+ {,-}arp
+ {,-}promisc
+ {,-}allmulti
+ metric
+ mtu
+ dstaddr
+ netmask
+ add
+ del
+ tunnel
+ irq
+ io_addr
+ mem_start
+ media
+ {,-}broadcast
+ {,-}pointopoint
+ hw
+ multicast
+ address
+ txqueuelen
+"
+complete -x -c ifconfig -a "(__fish_print_interfaces)" -d (_ "Network interface")
diff --git a/share/completions/jobs.fish b/share/completions/jobs.fish
new file mode 100644
index 00000000..c3a0cb6c
--- /dev/null
+++ b/share/completions/jobs.fish
@@ -0,0 +1,6 @@
+
+
+complete -c jobs -s p -l pid -d (_ "Show the process id of each process in the job")
+complete -c jobs -s g -l group -d (_ "Show group id of job")
+complete -c jobs -s c -l command -d (_ "Show commandname of each job")
+complete -c jobs -s l -l last -d (_ "Only show status for last job to be started")
diff --git a/share/completions/kill.fish b/share/completions/kill.fish
new file mode 100644
index 00000000..b36838fc
--- /dev/null
+++ b/share/completions/kill.fish
@@ -0,0 +1,35 @@
+# Completions for the kill command
+
+if kill -L ^/dev/null >/dev/null
+
+ # Debian and some related systems use 'kill -L' to write out a numbered list
+ # of signals. Use this to complete on both number _and_ on signal name.
+
+ complete -c kill -s L -d "List codes and names of available signals"
+
+ set -- signals (kill -L | sed -e 's/\([0-9][0-9]*\) *\([A-Z,0-9][A-Z,0-9]*\)/\1 \2\n/g;s/ +/ /g' | sed -e 's/^ //' | grep -E '^[^ ]+')
+ for i in $signals
+ set -- number (echo $i | cut -d " " -f 1)
+ set -- name (echo $i | cut -d " " -f 2)
+ complete -c kill -o $number -d $name
+ complete -c kill -o $name -d $name
+ complete -c kill -o s -x -a \"$number\tSend\ $name\ signal\" -d "Send specified signal"
+ complete -c kill -o s -x -a \"$name\tSend\ $name\ signal\" -d "Send specified signal"
+ end
+
+else
+
+ # Other systems print out a list of signals in an unspecified way on
+ # 'kill -l'. We complete with anything that looks like a signal name.
+
+ complete -c kill -s l -d "List codes and names of available signals"
+
+ for i in (kill -l|tr \ \t \n|grep '^[A-Z][A-Z0-9]*$')
+ complete -c kill -o $i -d Send\ $i\ signal
+ complete -c kill -o s -x -a $i\tSend\ $i\ signal -d "Send specified signal"
+ end
+end
+
+complete -c kill -xa '(__fish_complete_pids)'
+complete -c kill -s l -d (_ "List names of available signals")
+
diff --git a/share/completions/la.fish b/share/completions/la.fish
new file mode 100644
index 00000000..1bc6bc95
--- /dev/null
+++ b/share/completions/la.fish
@@ -0,0 +1,2 @@
+
+__fish_complete_ls la
diff --git a/share/completions/latex.fish b/share/completions/latex.fish
new file mode 100644
index 00000000..1897f965
--- /dev/null
+++ b/share/completions/latex.fish
@@ -0,0 +1,2 @@
+__fish_complete_tex latex
+
diff --git a/share/completions/less.fish b/share/completions/less.fish
new file mode 100644
index 00000000..ab33de5a
--- /dev/null
+++ b/share/completions/less.fish
@@ -0,0 +1,52 @@
+complete -c less -s \? -l help -d (_ "Display help and exit")
+complete -c less -s a -l search-skip-screen -d (_ "Search after end of screen")
+complete -c less -s b -l buffers -r -d (_ "Buffer space")
+complete -c less -s B -l auto-buffers -d (_ "Disable automtic buffer allocation")
+complete -c less -s c -l clear-screen -d (_ "Repaint from top")
+complete -c less -s C -l CLEAR-SCREEN -d (_ "Clear and repaint from top")
+complete -c less -s d -l dumb -d (_ "Supress error for lacking terminal capability")
+complete -c less -s e -l quit-at-eof -d (_ "Exit on second EOF")
+complete -c less -s E -l QUIT-AT-EOF -d (_ "Exit on EOF")
+complete -c less -s f -l force -d (_ "Open non-regular files")
+complete -c less -s F -l quit-if-one-screen -d (_ "Quit if file shorter than one screen")
+complete -c less -s g -l hilite-search -d (_ "Hilight one search target")
+complete -c less -s G -l HILITE-SEARCH -d (_ "No search highlighting")
+complete -c less -s h -l max-back-scroll -d (_ "Maximum backward scroll") -r -a "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19"
+complete -c less -s i -l ignore-case -d (_ "Search ignores lowercase case")
+complete -c less -s I -l IGNORE-CASE -d (_ "Search ignores all case")
+complete -c less -s j -l jump-target -d (_ "Target line") -r -a "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19"
+complete -c less -s J -l status-column -d (_ "Display status column")
+complete -c less -s k -l lesskey-file -d (_ "Specify key bindings file") -r
+complete -c less -s L -l no-lessopen -d 'Ignore $LESSOPEN'
+complete -c less -s m -l long-prompt -d (_ "Prompt with percentage")
+complete -c less -s M -l LONG-PROMPT -d (_ "Verbose prompt")
+complete -c less -s n -l line-numbers -d (_ "Display line number")
+complete -c less -s N -l LINE-NUMBERS -d (_ "Display line number for each line")
+complete -c less -s o -l log-file -d (_ "Log input to file") -r
+complete -c less -s O -l LOG-FILE -d (_ "Log to file, overwrite") -r
+complete -c less -s p -l pattern -d (_ "Start at first occurrence of pattern") -r
+complete -c less -s P -l prompt -d (_ "Prompt string") -r
+complete -c less -s q -l quiet -d (_ "Silent mode")
+complete -c less -l silent -d (_ "Silent mode")
+complete -c less -s Q -l QUIET -d (_ "Completly silent mode")
+complete -c less -l SILENT -d (_ "Completly silent mode")
+complete -c less -s r -l raw-control-chars -d (_ "Display control chars")
+complete -c less -s R -l RAW-CONTROL-CHARS -d (_ "Display control chars, guess screen appearance")
+complete -c less -s s -l squeeze-blank-lines -d (_ "Multiple blank lines sqeezed")
+complete -c less -s S -l chop-long-lines -d (_ "Do not fold long lines")
+complete -c less -s t -l tag -d (_ "Edit tag") -r
+complete -c less -s T -l tag-file -d (_ "Set tag file") -r
+complete -c less -s u -l underline-special -d (_ "Allow backspace and carriage return")
+complete -c less -s U -l UNDERLINE-SPECIAL -d (_ "Allow backspace, tab and carriage return")
+complete -c less -s V -l version -d (_ "Display version and exit")
+complete -c less -s w -l hilite-unread -d (_ "Highlight first unread line on new page")
+complete -c less -s W -l HILITE-UNREAD -d (_ "Highlight first unread line on any movement")
+complete -c less -s x -l tabs -d (_ "Set tab stops") -r -a "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16"
+complete -c less -s X -l no-init -d (_ "No termcap init")
+complete -c less -l no-keypad -d (_ "No keypad init")
+complete -c less -s y -l max-forw-scroll -d (_ "Maximum forward scroll") -r -a "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19"
+complete -c less -s z -l window -d (_ "Max scroll window") -r -a "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19"
+complete -c less -s \" -l quotes -d (_ "Set quote char") -r
+complete -c less -s \~ -l tilde -d (_ "Lines after EOF are blank")
+complete -c less -s \# -l shift -d (_ "Characters to scroll on left/right arrows") -a "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19"
+
diff --git a/share/completions/ll.fish b/share/completions/ll.fish
new file mode 100644
index 00000000..2fe36ef6
--- /dev/null
+++ b/share/completions/ll.fish
@@ -0,0 +1,2 @@
+
+__fish_complete_ls ll
diff --git a/share/completions/ls.fish b/share/completions/ls.fish
new file mode 100644
index 00000000..517d2759
--- /dev/null
+++ b/share/completions/ls.fish
@@ -0,0 +1,2 @@
+
+__fish_complete_ls ls
diff --git a/share/completions/make.fish b/share/completions/make.fish
new file mode 100644
index 00000000..351a0c1b
--- /dev/null
+++ b/share/completions/make.fish
@@ -0,0 +1,29 @@
+#Completions for make
+
+function __fish_print_make_targets
+ set files Makefile makefile GNUmakefile
+ grep -h -E '^[^#%=$[:space:]][^#%=$]*:([^=]|$)' $files | cut -d ":" -f 1 | sed -e 's/^ *//;s/ *$//;s/ */\n/g' ^/dev/null
+end
+
+complete -x -c make -a "(__fish_print_make_targets)" -d (_ "Target")
+complete -r -c make -s f -d (_ "Use file as makefile") -r
+complete -x -c make -s C -x -a "(__fish_complete_directory (commandline -ct))" -d (_ "Change directory")
+complete -c make -s d -d (_ "Debug mode")
+complete -c make -s e -d (_ "Environment before makefile")
+complete -c make -s i -d (_ "Ignore errors")
+complete -x -c make -s I -d (_ "Search directory for makefile") -a "(__fish_complete_directory (commandline -ct))"
+complete -x -c make -s j -d (_ "Number of concurrent jobs")
+complete -c make -s k -d (_ "Continue after an error")
+complete -c make -s l -d (_ "Start when load drops")
+complete -c make -s n -d (_ "Do not execute commands")
+complete -c make -s o -r -d (_ "Ignore specified file")
+complete -c make -s p -d (_ "Print database")
+complete -c make -s q -d (_ "Question mode")
+complete -c make -s r -d (_ "Eliminate implicit rules")
+complete -c make -s s -d (_ "Quiet mode")
+complete -c make -s S -d (_ "Don't continue after an error")
+complete -c make -s t -d (_ "Touch files, don't run commands")
+complete -c make -s v -d (_ "Display version and exit")
+complete -c make -s w -d (_ "Print working directory")
+complete -c make -s W -r -d (_ "Pretend file is modified")
+
diff --git a/share/completions/makedepend.fish b/share/completions/makedepend.fish
new file mode 100644
index 00000000..534a1885
--- /dev/null
+++ b/share/completions/makedepend.fish
@@ -0,0 +1,13 @@
+complete -c makedepend -s D -r -d (_ "Define")
+complete -c makedepend -s I -r -d (_ "Include directory")
+complete -c makedepend -s Y -r -d (_ "Replace include directories")
+complete -c makedepend -s a -d (_ "Append dependencies to makefile")
+complete -c makedepend -s f -r -d (_ "Specify makefile")
+complete -c makedepend -o include -r -d (_ "Prepend file to input")
+complete -c makedepend -s o -r -d (_ "Object file suffix")
+complete -c makedepend -s p -r -d (_ "Object file prefix")
+complete -c makedepend -s s -r -d (_ "Starting string delimiter")
+complete -c makedepend -s w -r -d (_ "Line width")
+complete -c makedepend -s v -d (_ "Verbose mode")
+complete -c makedepend -s m -d (_ "Warn about multiple inclusion")
+
diff --git a/share/completions/man.fish b/share/completions/man.fish
new file mode 100644
index 00000000..8ff23dc1
--- /dev/null
+++ b/share/completions/man.fish
@@ -0,0 +1,36 @@
+
+complete -xc man -a "(__fish_complete_man)"
+
+complete -xc man -a 1 -d (_ "Program section")
+complete -xc man -a 2 -d (_ "Syscall section")
+complete -xc man -a 3 -d (_ "Library section")
+complete -xc man -a 4 -d (_ "Device section")
+complete -xc man -a 5 -d (_ "File format section")
+complete -xc man -a 6 -d (_ "Games section")
+complete -xc man -a 7 -d (_ "Misc section")
+complete -xc man -a 8 -d (_ "Admin section")
+complete -xc man -a 9 -d (_ "Kernel section")
+complete -xc man -a tcl -d (_ "Tcl section")
+complete -xc man -a n -d (_ "New section")
+complete -xc man -a l -d (_ "Local section")
+complete -xc man -a p
+complete -xc man -a o -d (_ "Old section")
+complete -rc man -s C -d (_ "Configuration file")
+complete -xc man -s M -a "(__fish_complete_directory (commandline -ct))" -d (_ "Manpath")
+complete -rc man -s P -d (_ "Pager")
+complete -xc man -s S -d (_ "Manual sections")
+complete -c man -s a -d (_ "Display all matches")
+complete -c man -s c -d (_ "Always reformat")
+complete -c man -s d -d (_ "Debug")
+complete -c man -s D -d (_ "Debug and run")
+complete -c man -s f -d (_ "Show whatis information")
+complete -c man -s F -l preformat -d (_ "Format only")
+complete -c man -s h -d (_ "Display help and exit")
+complete -c man -s k -d (_ "Show apropos information")
+complete -c man -s K -d (_ "Search in all man pages")
+complete -xc man -s m -d (_ "Set system")
+complete -xc man -s p -d (_ "Preprocessors")
+complete -c man -s t -d (_ "Format for printing")
+complete -c man -s w -l path -d (_ "Only print locations")
+complete -c man -s W -d (_ "Only print locations")
+
diff --git a/share/completions/mimedb.fish b/share/completions/mimedb.fish
new file mode 100644
index 00000000..8d0f1324
--- /dev/null
+++ b/share/completions/mimedb.fish
@@ -0,0 +1,9 @@
+complete -c mimedb -s t -l input-file-data -d (_ "Input is a file, use name and contents to determine mimetype")
+complete -c mimedb -s f -l input-filename -d (_ "Input is a file, use name to determine mimetype")
+complete -c mimedb -s i -l input-mime -d (_ "Input is a mimetype")
+complete -c mimedb -s m -l output-mime -d (_ "Output mimetype")
+complete -c mimedb -s d -l output-description -d (_ "Output description of mimetype")
+complete -c mimedb -s a -l output-action -d (_ "Output default action for mimetype")
+complete -c mimedb -s l -l launch -d (_ "Launch default action for each file")
+complete -c mimedb -s h -l help -d (_ "Display help and exit")
+complete -c mimedb -s v -l version -d (_ "Display version and exit")
diff --git a/share/completions/modprobe.fish b/share/completions/modprobe.fish
new file mode 100644
index 00000000..40074839
--- /dev/null
+++ b/share/completions/modprobe.fish
@@ -0,0 +1,26 @@
+#
+# Completions for the modprobe command
+#
+
+complete -c modprobe -d Module -a "(/sbin/modprobe -l | sed -e 's/\/.*\/\([^\/.]*\).*/\1/')"
+complete -c modprobe -s v -l verbose -d (_ "Print messages about what the program is doing")
+complete -c modprobe -s C -l config -d (_ "Configuration file") -r
+complete -c modprobe -s c -l showconfig -d (_ "Dump configuration file")
+complete -c modprobe -s n -l dry-run -d (_ "Do not actually insert/remove module")
+complete -c modprobe -s i -l ingnore-install -d (_ "Ignore install and remove commands in configuration file")
+complete -c modprobe -l ingnore-remove -d (_ "Ignore install and remove commands in configuration file")
+complete -c modprobe -s q -l quiet -d (_ "Ignore bogus module names")
+complete -c modprobe -s r -l remove -d (_ "Remove modules")
+complete -c modprobe -s V -l version -d (_ "Display version and exit")
+complete -c modprobe -s f -l force -d (_ "Ignore all version information")
+complete -c modprobe -l force-vermagic -d (_ "Ignore version magic information")
+complete -c modprobe -l force-modversion -d (_ "Ignore module interface version")
+complete -c modprobe -s l -l list -d (_ "List all modules matching the given wildcard")
+complete -c modprobe -s a -l all -d (_ "Insert modules matching the given wildcard")
+complete -c modprobe -s t -l type -d (_ "Restrict wildcards to specified directory")
+complete -c modprobe -s s -l syslog -d (_ "Send error messages through syslog")
+complete -c modprobe -l set-version -d (_ "Specify kernel version")
+complete -c modprobe -l show-depends -d (_ "List dependencies of module")
+complete -c modprobe -s o -l name -d (_ "Rename module")
+complete -c modprobe -l first-time -d (_ "Fail if inserting already loaded module")
+
diff --git a/share/completions/mount.fish b/share/completions/mount.fish
new file mode 100644
index 00000000..94fa929b
--- /dev/null
+++ b/share/completions/mount.fish
@@ -0,0 +1,30 @@
+
+
+# A list of all known filesystem types, used by various completions,
+# including mount and df
+
+# Completions for mount
+complete -x -c mount -a '(cat /etc/fstab|sed -e "s/^\([^ \t]*\)[ \t]*\([^ \t]*\).*/\1\n\2/"|grep "^/")' -d (_ 'Mount point')
+complete -c mount -s V -d (_ 'Display version and exit')
+complete -c mount -s h -d (_ 'Display help and exit')
+complete -c mount -s v -d (_ 'Verbose mode')
+complete -c mount -s a -d (_ 'Mount filesystems in fstab')
+complete -c mount -s F -d (_ 'Fork process for each mount')
+complete -c mount -s f -d (_ 'Fake mounting')
+complete -c mount -s l -d (_ 'Add label to output')
+complete -c mount -s n -d (_ 'Do not write mtab')
+complete -c mount -s s -d (_ 'Tolerate sloppy mount options')
+complete -c mount -s r -d (_ 'Read only')
+complete -c mount -s w -d (_ 'Read/Write mode')
+complete -x -c mount -s L -d (_ 'Mount partition with specified label')
+complete -x -c mount -s U -d (_ 'Mount partition with specified UID')
+complete -c mount -s O -x -d (_ 'Exclude filesystems')
+complete -c mount -l bind -f -d (_ 'Remount a subtree to a second position')
+complete -c mount -l move -f -d (_ 'Move a subtree to a new position')
+complete -c mount -x -s t -d (_ 'Filesystem') -a "(__fish_print_filesystems)"
+
+complete -c mount -x -s o -d (_ 'Mount option') -a '(__fish_append , $__fish_mount_opts)'
+
+set -g __fish_mount_opts async\tUse\ asynchronous\ I/O atime\tUpdate\ time\ on\ each\ access auto\tMounted\ with\ -a defaults\tUse\ default\ options dev\tInterpret\ character/block\ special\ devices exec\tPermit\ executables _netdev\tFilesystem\ uses\ network noatime\tDo\ not\ update\ time\ on\ each\ access noauto\tNot\ mounted\ by\ -a nodev\tDo\ not\ interpret\ character/block\ special\ devices noexec\tDo\ not\ permit\ executables nosuid\tIgnore\ suid\ bits nouser\tOnly\ root\ may\ mount remount\tRemount\ read-only\ filesystem ro\tMount\ read-only rw\tMount\ read-write suid\tAllow\ suid\ bits sync\tUse\ synchronous\ I/O dirsync\tUse\ synchronous\ directory\ operations user\tAny\ user\ may\ mount users\tAny\ user\ may\ mount\ and\ unmount
+
+
diff --git a/share/completions/mplayer.fish b/share/completions/mplayer.fish
new file mode 100644
index 00000000..c1368898
--- /dev/null
+++ b/share/completions/mplayer.fish
@@ -0,0 +1,85 @@
+# Completions for mplayer (Incomplete, there are too many options and
+# I am too lazy. Please send in suggested additions)
+
+#
+# List of two letter language codes for dvd audio, etc. Very
+# incomplete. Please send in additions.
+#
+
+set mplayer_lang "
+ de\tGerman
+ dk\tDanish
+ en\tEnglish
+ es\tSpanish
+ fi\tFinnish
+ fr\tFrench
+ gr\tGreek
+ hu\tHungarian
+ it\tItalian
+ jp\tJapanese
+ no\tNorwegian
+ hu\tHungarian
+ pl\tPolish
+ pt\tPortugese
+ se\Swedish
+"
+
+complete -c mplayer -o autoq -d (_ "Dynamically change postprocessing") -x
+complete -c mplayer -o autosync -x -d (_ "A/V sync speed")
+complete -c mplayer -o framedrop -d (_ "Skip frames to maintain A/V sync")
+complete -c mplayer -s h -o help -d (_ "Display help and exit")
+complete -c mplayer -o hardframedrop -d (_ "Skip frames to maintain A/V sync")
+complete -c mplayer -o loop -x -d (_ "Loop playback") -r -a "0 1 2 3 4 5 6 7 8 9"
+complete -c mplayer -o shuffle -d (_ "Play in random order")
+
+complete -c mplayer -s h -o help -d (_ "Display help and exit")
+complete -c mplayer -o fs -d (_ "Full screen")
+complete -c mplayer -o playlist -d (_ "Set playlist")-r
+complete -c mplayer -o alang -d (_ "Audio language") -x -a $mplayer_lang
+complete -c mplayer -o audiofile -d (_ "Play audio from file") -r
+complete -c mplayer -o cdrom-device -d (_ "Set default CD-ROM drive")
+complete -c mplayer -o channels -d (_ "Set number of audio channels") -x -a "2 4 6"
+complete -c mplayer -o chapter -d (_ "Set start chapter") -x
+complete -c mplayer -o dvd-device -d (_ "Set default DVD-ROM drive")
+complete -c mplayer -o dvdangle -d (_ "Set dvd viewing angle") -x -a "1 2 3 4 5 6 7 8"
+complete -c mplayer -o forceidx -d (_ "Force rebuilding index")
+complete -c mplayer -o fps -d (_ "Override framerate") -x -a "24 25 30"
+complete -c mplayer -o idx -d (_ "Build index if unavailable")
+complete -c mplayer -o loadidx -d (_ "Load index from file") -r
+complete -c mplayer -o ni -d (_ "Force non-interleaved AVI parser")
+complete -c mplayer -o saveidx -d (_ "Rebuild index and save to file") -r
+complete -c mplayer -o ss -d (_ "Seek to given time position") -x
+complete -c mplayer -o tv -d (_ "TV capture mode")
+complete -c mplayer -o slang -d (_ "Subtitle language") -x -a $mplayer_lang
+complete -c mplayer -o sub -d (_ "Subtitle file") -r
+complete -c mplayer -o unicode -d (_ "Handle subtitlefile as unicode")
+complete -c mplayer -o utf8 -d (_ "Handle subtitlefile as utf8")
+
+complete -c mplayer -o vo -x -d (_ "Video output") -a "
+(
+ mplayer -vo help|grep \t.\*\t'\|^ *[a-zA-Z0-9][a-zA-Z0-9]* '|sed -e 's/[\t ]*\([a-zA-Z0-9]*\)[\t ]*\(.*\)/\1\t\2/'
+)
+"
+
+complete -c mplayer -o ao -x -d (_ "Audio output") -a "
+(
+ mplayer -ao help|grep \t.\*\t'\|^ *[a-zA-Z0-9][a-zA-Z0-9]* '|sed -e 's/[\t ]*\([a-zA-Z0-9]*\)[\t ]*\(.*\)/\1\t\2/'
+)
+"
+
+complete -c mplayer -o afm -x -d (_ "Audio output") -a "
+(
+ __fish_append ',' (mplayer -afm help|grep \t.\*\t'\|^ *[a-zA-Z0-9][a-zA-Z0-9]* '|sed -e 's/[\t ]*\([a-zA-Z0-9]*\)[\t ]*\(.*\)/\1\t\2/')
+)
+"
+
+complete -c mplayer -o vfm -x -d (_ "Video output") -a "
+(
+ __fish_append ',' (mplayer -vfm help|grep \t.\*\t'\|^ *[a-zA-Z0-9][a-zA-Z0-9]* '|sed -e 's/[\t ]*\([a-zA-Z0-9]*\)[\t ]*\(.*\)/\1\t\2/')
+)
+"
+
+complete -c mplayer -l help -d (_ "Display help and exit")
+complete -c mplayer -l version -d (_ "Display version and exit")
+
+set -e mplayer_lang
diff --git a/share/completions/mv.fish b/share/completions/mv.fish
new file mode 100644
index 00000000..9f57f59f
--- /dev/null
+++ b/share/completions/mv.fish
@@ -0,0 +1,12 @@
+complete -c mv -s b -l backup -d (_ "Make backup of each existing destination file")
+complete -c mv -s f -l force -d (_ "Do not prompt before overwriting")
+complete -c mv -s i -l interactive -d (_ "Prompt before overwrite")
+complete -c mv -l reply -x -a "yes no query" -d (_ "Answer for overwrite questions")
+complete -c mv -l strip-trailing-slashes -d (_ "Remove trailing slashes from source")
+complete -c mv -s S -l suffix -r -d (_ "Backup suffix")
+complete -c mv -l target-directory -d (_ "Target directory") -x -a "(__fish_complete_directory (commandline -ct) 'Target directory')"
+complete -c mv -s u -l update -d (_ "Do not overwrite newer files")
+complete -c mv -s v -l vervose -d (_ "Verbose mode")
+complete -c mv -l help -d (_ "Display help and exit")
+complete -c mv -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/nextd.fish b/share/completions/nextd.fish
new file mode 100644
index 00000000..1f6e0631
--- /dev/null
+++ b/share/completions/nextd.fish
@@ -0,0 +1 @@
+complete -c nextd -s l -d (_ "Also print directory history")
diff --git a/share/completions/nice.fish b/share/completions/nice.fish
new file mode 100644
index 00000000..e7b67035
--- /dev/null
+++ b/share/completions/nice.fish
@@ -0,0 +1,5 @@
+
+complete -c nice -s n -l adjustment -r -d (_ "Increment priority by specified number first")
+complete -c nice -l help -d (_ "Display help and exit")
+complete -c nice -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/omega.fish b/share/completions/omega.fish
new file mode 100644
index 00000000..76908cc8
--- /dev/null
+++ b/share/completions/omega.fish
@@ -0,0 +1,2 @@
+__fish_complete_tex omega
+
diff --git a/share/completions/pdfelatex.fish b/share/completions/pdfelatex.fish
new file mode 100644
index 00000000..555d9b7d
--- /dev/null
+++ b/share/completions/pdfelatex.fish
@@ -0,0 +1,3 @@
+__fish_complete_tex pdfelatex
+
+
diff --git a/share/completions/pdfetex.fish b/share/completions/pdfetex.fish
new file mode 100644
index 00000000..a5ae9f9a
--- /dev/null
+++ b/share/completions/pdfetex.fish
@@ -0,0 +1,3 @@
+__fish_complete_tex pdfetex
+
+
diff --git a/share/completions/pdflatex.fish b/share/completions/pdflatex.fish
new file mode 100644
index 00000000..80b1a5bf
--- /dev/null
+++ b/share/completions/pdflatex.fish
@@ -0,0 +1,2 @@
+__fish_complete_tex pdflatex
+
diff --git a/share/completions/pdftex.fish b/share/completions/pdftex.fish
new file mode 100644
index 00000000..c4c6f270
--- /dev/null
+++ b/share/completions/pdftex.fish
@@ -0,0 +1,3 @@
+__fish_complete_tex pdftex
+
+
diff --git a/share/completions/perl.fish b/share/completions/perl.fish
new file mode 100644
index 00000000..62f49b07
--- /dev/null
+++ b/share/completions/perl.fish
@@ -0,0 +1,20 @@
+complete -c perl -s 0 -d (_ 'Specify record separator')
+complete -c perl -s a -d (_ 'Turn on autosplit mode')
+complete -c perl -s c -d (_ 'Check syntax')
+complete -c perl -s d -d (_ 'Debugger')
+complete -c perl -s D -x -d (_ 'Debug option')
+complete -c perl -s e -x -d (_ 'Execute command')
+complete -c perl -s F -d (_ 'Set regexp used to split input')
+complete -c perl -s i -d (_ 'Edit files in-place')
+complete -c perl -s I -d (_ 'Include path')
+complete -c perl -s l -d (_ 'Automatic line ending processing')
+complete -c perl -s n -d (_ 'Loop script')
+complete -c perl -s p -d (_ 'Loop script, print $_')
+complete -c perl -s P -d (_ 'Invoke CPP')
+complete -c perl -s s -d (_ 'Define custom switches')
+complete -c perl -s S -d (_ 'Search $PATH for script')
+complete -c perl -s T -d (_ 'Taint checking')
+complete -c perl -s U -d (_ 'Unsafe mode')
+complete -c perl -s v -d (_ 'Display version and exit')
+complete -c perl -s x -d (_ 'Extract script')
+
diff --git a/share/completions/pine.fish b/share/completions/pine.fish
new file mode 100644
index 00000000..76e34f31
--- /dev/null
+++ b/share/completions/pine.fish
@@ -0,0 +1,26 @@
+complete -c pine -s f -d (_ "Open folder") -a "(cd ~/.Mail; ls -d *)"
+complete -c pine -s F -d (_ "Open file") -r
+complete -c pine -s h -d (_ "Display help and exit")
+complete -c pine -s i -d (_ "Start in folder index")
+complete -c pine -s I -d (_ "Initial set of keystrokes") -x
+complete -c pine -s k -d (_ "Use function keys for commands")
+complete -c pine -s l -d (_ "Expand collections in FOLDER LIST display")
+complete -c pine -s n -d (_ "Start with specified current message number") -x
+complete -c pine -s o -d (_ "Open folder read-only")
+complete -c pine -s p -d (_ "Set configuration file") -r
+complete -c pine -s P -d (_ "Set global configuration file")
+complete -c pine -s r -d (_ "Restricted mode")
+complete -c pine -s z -d (_ "Enable suspension support")
+complete -c pine -o conf -d (_ "Produce a sample global configuration file")
+complete -c pine -o pinerc -d (_ "Produce sample configuration file") -r
+complete -c pine -o sort -d (_ "Set mail sort order") -a "
+ arrival
+ subject
+ from
+ date
+ size
+ orderedsubj
+ reverse
+"
+
+complete -c pine -o option -d (_ "Config option") -x
diff --git a/share/completions/ping.fish b/share/completions/ping.fish
new file mode 100644
index 00000000..b222a446
--- /dev/null
+++ b/share/completions/ping.fish
@@ -0,0 +1,30 @@
+complete -c ping -a "(__fish_print_hostnames)" -x
+complete -c ping -s a -d (_ "Audible ping")
+complete -c ping -s A -d (_ "Adaptive ping")
+complete -c ping -s b -d (_ "Allow pinging a broadcast address")
+complete -c ping -s B -d (_ "Do not allow ping to change source address of probes")
+complete -c ping -s c -d (_ "Stop after specified number of ECHO_REQUEST packets") -x
+complete -c ping -s d -d (_ "Set the SO_DEBUG option on the socket being used")
+complete -c ping -s F -d (_ "Allocate and set 20 bit flow label on ECHO_REQUEST packets") -x
+complete -c ping -s f -d (_ "Flood ping")
+complete -c ping -s i -d (_ "Wait specified interval of seconds between sending each packet") -x
+complete -c ping -s I -d (_ "Set source address to specified interface address") -x -a "(__fish_print_interfaces; fish_print_addresses)"
+complete -c ping -s l -d (_ "Send the specified number of packets without waiting for reply") -x
+complete -c ping -s L -d (_ "Suppress loopback of multicast packets")
+complete -c ping -s n -d (_ "Numeric output only")
+complete -c ping -s p -d (_ "Pad packet with empty bytes") -x
+complete -c ping -s Q -d (_ "Set Quality of Service -related bits in ICMP datagrams") -x
+complete -c ping -s q -d (_ "Quiet mode")
+complete -c ping -s R -d (_ "Record route")
+complete -c ping -s r -d (_ "Bypass the normal routing tables and send directly to a host on an attached interface")
+complete -c ping -s s -d (_ "Specifies the number of data bytes to be sent") -x
+complete -c ping -s S -d (_ "Set socket buffer size") -x
+complete -c ping -s t -d (_ "Set the IP Time to Live") -x
+complete -c ping -s T -d (_ "Set special IP timestamp options") -x
+complete -c ping -s M -d (_ "Select Path MTU Discovery strategy") -x -a "do want dont"
+complete -c ping -s U -d (_ "Print full user-to-user latency")
+complete -c ping -s v -d (_ "Verbose mode")
+complete -c ping -s V -d (_ "Display version and exit")
+complete -c ping -s w -d (_ "Specify a timeout, in seconds, before ping exits regardless of how many packets have been sent or received") -x
+complete -c ping -s W -d (_ "Time to wait for a response, in seconds") -x
+
diff --git a/share/completions/prevd.fish b/share/completions/prevd.fish
new file mode 100644
index 00000000..2ef6873b
--- /dev/null
+++ b/share/completions/prevd.fish
@@ -0,0 +1 @@
+complete -c prevd -s l -d (_ "Also print directory history")
diff --git a/share/completions/ps.fish b/share/completions/ps.fish
new file mode 100644
index 00000000..30eb974b
--- /dev/null
+++ b/share/completions/ps.fish
@@ -0,0 +1,37 @@
+# Completions for ps
+
+complete -c ps -s A -d (_ "Select all")
+complete -c ps -s N -d (_ "Invert selection")
+complete -c ps -s a -d (_ "Select all processes except session leaders and terminal-less")
+complete -c ps -s d -d (_ "Select all processes except session leaders")
+complete -c ps -s e -d (_ "Select all")
+complete -c ps -l deselect -d (_ "Deselect all processes that do not fulfill conditions")
+
+complete -c ps -s C -d (_ "Select by command") -r
+complete -c ps -s G -l Group -d (_ "Select by group") -x -a "(__fish_complete_groups)"
+
+complete -c ps -s U -l User -d (_ "Select by user") -x -a "(__fish_complete_users)"
+complete -c ps -s u -l user -d (_ "Select by user") -x -a "(__fish_complete_users)"
+complete -c ps -s g -l group -d (_ "Select by group/session") -x -a "(__fish_complete_groups)"
+complete -c ps -s p -l pid -d (_ "Select by PID") -x -a "(__fish_complete_pids)"
+complete -c ps -l ppid -d (_ "Select by parent PID") -x -a "(__fish_complete_pids)"
+complete -c ps -s s -l sid -d (_ "Select by session ID") -x -a "(__fish_complete_pids)"
+complete -c ps -s t -l tty -d (_ "Select by tty") -r
+complete -c ps -s F -d (_ "Extra full format")
+complete -c ps -s O -d (_ "User defined format") -x
+complete -c ps -s M -d (_ "Add column for security data")
+complete -c ps -s f -d (_ "Full format")
+complete -c ps -s j -d (_ "Jobs format")
+complete -c ps -s l -d (_ "Long format")
+complete -c ps -s o -l format -d (_ "User defined format") -x
+complete -c ps -s y -d (_ "Do not show flags")
+complete -c ps -s Z -l context -d (_ "Add column for security data")
+complete -c ps -s H -l forest -d (_ "Show hierarchy")
+complete -c ps -s n -d (_ "Set namelist file") -r
+complete -c ps -s w -d (_ "Wide output")
+complete -c ps -s L -d (_ "Show threads")
+complete -c ps -s T -d (_ "Show threads")
+complete -c ps -s V -l version -d (_ "Display version and exit")
+complete -c ps -l help -d (_ "Display help and exit")
+complete -c ps -l info -d (_ "Display debug info")
+
diff --git a/share/completions/pushd.fish b/share/completions/pushd.fish
new file mode 100644
index 00000000..49958bf8
--- /dev/null
+++ b/share/completions/pushd.fish
@@ -0,0 +1 @@
+complete -c pushd -x -a "(__fish_complete_cd)"
diff --git a/share/completions/python.fish b/share/completions/python.fish
new file mode 100644
index 00000000..1e94a60f
--- /dev/null
+++ b/share/completions/python.fish
@@ -0,0 +1,14 @@
+complete -c python -s c -x -d (_ "Execute argument as command")
+complete -c python -s d -d (_ "Debug on")
+complete -c python -s E -d (_ "Ignore environment variables")
+complete -c python -s h -d (_ "Display help and exit")
+complete -c python -s i -d (_ "Interactive mode after executing commands")
+complete -c python -s O -d (_ "Enable optimizations")
+complete -c python -s Q -x -a "old new" -d (_ "Division control")
+complete -c python -s S -d (_ "Disable import of site module")
+complete -c python -s t -d (_ "Warn on mixed tabs and spaces")
+complete -c python -s u -d (_ "Unbuffered input and output")
+complete -c python -s v -d (_ "Verbose mode")
+complete -c python -s V -d (_ "Display version and exit")
+complete -c python -s W -x -d (_ "Warning control") -a "ignore default all module once error"
+complete -c python -s x -d (_ "Ignore first line of input")
diff --git a/share/completions/read.fish b/share/completions/read.fish
new file mode 100644
index 00000000..e6bac135
--- /dev/null
+++ b/share/completions/read.fish
@@ -0,0 +1,8 @@
+complete -c read -s h -l help -d (_ "Display help and exit")
+complete -c read -s p -l prompt -d (_ "Set prompt command") -x
+complete -c read -s x -l export -d (_ "Export variable to subprocess")
+complete -c read -s g -l global -d (_ "Make variable scope global")
+complete -c read -s l -l local -d (_ "Make variable scope local")
+complete -c read -s U -l universal -d (_ "Make variable scope universal, i.e. share variable with all the users fish processes on this computer")
+complete -c read -s u -l unexport -d (_ "Do not export variable to subprocess")
+
diff --git a/share/completions/renice.fish b/share/completions/renice.fish
new file mode 100644
index 00000000..65b88a68
--- /dev/null
+++ b/share/completions/renice.fish
@@ -0,0 +1,4 @@
+
+complete -c renice -s p -d (_ "Force following parameters to be process ID's (The default)")
+complete -c renice -s g -d (_ "Force following parameters to be interpreted as process group ID's")
+complete -c renice -s u -d (_ "Force following parameters to be interpreted as user names")
diff --git a/share/completions/rm.fish b/share/completions/rm.fish
new file mode 100644
index 00000000..f869fdbd
--- /dev/null
+++ b/share/completions/rm.fish
@@ -0,0 +1,11 @@
+#Completions for rm
+complete -c rm -s d -l directory -d (_ "Unlink directory (Only by superuser)")
+complete -c rm -s f -l force -d (_ "Never prompt before removal")
+complete -c rm -s i -l interactive -d (_ "Prompt before removal")
+complete -c rm -s r -l recursive -d (_ "Recursively remove subdirectories")
+complete -c rm -s R -d (_ "Recursively remove subdirectories")
+complete -c rm -s v -l verbose -d (_ "Explain what is done")
+complete -c rm -s h -l help -d (_ "Display help and exit")
+complete -c rm -l version -d (_ "Display version and exit")
+
+
diff --git a/share/completions/rmdir.fish b/share/completions/rmdir.fish
new file mode 100644
index 00000000..9cb6a691
--- /dev/null
+++ b/share/completions/rmdir.fish
@@ -0,0 +1,8 @@
+#Completions for rmdir
+complete -x -c rmdir -a "(__fish_complete_directory (commandline -ct))"
+complete -c rmdir -l ignore-fail-on-non-empty -d (_ "Ignore errors from non-empty directories")
+complete -c rmdir -s p -l parents -d (_ "Remove each component of path")
+complete -c rmdir -s v -l verbose -d (_ "Verbose mode")
+complete -c rmdir -l help -d (_ "Display help and exit")
+complete -c rmdir -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/rpm.fish b/share/completions/rpm.fish
new file mode 100644
index 00000000..42b823f2
--- /dev/null
+++ b/share/completions/rpm.fish
@@ -0,0 +1,131 @@
+# Completions for the rpm command. Insanely complicated,
+# since rpm has multiple operation modes, and a perverse number of switches.
+
+complete -c rpm -s "?" -l help -d (_ "Display help and exit")
+complete -c rpm -l version -d (_ "Display version and exit")
+complete -c rpm -l quiet -d (_ "Quiet mode")
+complete -c rpm -s v -d (_ "Verbose mode")
+complete -c rpm -l rcfile -d (_ "List of rpm configuration files") -f
+complete -c rpm -l pipe -d (_ "Pipe output through specified command") -r
+complete -c rpm -l dbpath -d (_ "Specify directory for rpm database") -a "
+(
+ __fish_complete_directory (commandline -ct) 'Rpm database directory'
+)
+"
+complete -c rpm -l root -d (_ "Specify root directory for rpm operations") -a "
+(
+ __fish_complete_directory (commandline -ct) 'Root directory for rpm operations'
+)
+"
+
+set -- rpm_install -c rpm -n "__fish_contains_opt -s i -s U -s F install upgrade freshen"
+complete $rpm_install -l aid -d (_ "Add suggested packages to the transaction set when needed")
+complete $rpm_install -l allfiles -d (_ "Installs or upgrades all the files in the package, even if they aren't needed (missingok) and don't exist")
+complete $rpm_install -l badreloc -d (_ "Used with --relocate, permit relocations on all file paths, not just those OLD-PATH's included in the binary package relocation hint(s)")
+complete $rpm_install -l excludepath -d (_ "Don't install files whose name begins with specified path") -xa "(__fish_complete_directory (commandline -ct) 'Skip installation of files in this directory')"
+complete $rpm_install -l excludedocs -d (_ "Don't install any files which are marked as documentation")
+complete $rpm_install -l force -d (_ 'Same as using --replacepkgs, --replacefiles, and --oldpackage')
+complete $rpm_install -s h -l hash -d (_ 'Print 50 hash marks as the package archive is unpacked')
+complete $rpm_install -l ignoresize -d (_ "Don't check for sufficient disk space before installation")
+complete $rpm_install -l ignorearch -d (_ "Allow installation or upgrading even if the architectures of the binary package and host don't match")
+complete $rpm_install -l ignoreos -d (_ "Allow installation or upgrading even if the operating systems of the binary package and host don't match")
+complete $rpm_install -l includedocs -d (_ 'Install documentation files (default)')
+complete $rpm_install -l justdb -d (_ 'Update only the database, not the filesystem')
+complete $rpm_install -l nodigest -d (_ "Don't verify package or header digests when reading")
+complete $rpm_install -l nosignature -d (_ "Don't verify package or header signatures when reading")
+complete $rpm_install -l nodeps -d (_ "Don't do a dependency check")
+complete $rpm_install -l nosuggest -d (_ "Don't suggest package(s) that provide a missing dependency")
+complete $rpm_install -l noorder -d (_ "Don't change the package installation order" )
+complete $rpm_install -l noscripts -d (_ "Don't execute scripts")
+complete $rpm_install -l nopre -d (_ "Don't execute pre scripts")
+complete $rpm_install -l nopost -d (_ "Don't execute post scripts")
+complete $rpm_install -l nopreun -d (_ "Don't execute preun scripts")
+complete $rpm_install -l nopostun -d (_ "Don't execute postun scripts")
+complete $rpm_install -l notriggers -d (_ "Don't execute trigger scriptlets")
+complete $rpm_install -l notriggerin -d (_ "Don't execute triggerin scriptlets")
+complete $rpm_install -l notriggerun -d (_ "Don't execute triggerun scriptlets")
+complete $rpm_install -l notriggerpostun -d (_ "Don't execute triggerpostun scriptlets")
+complete $rpm_install -l oldpackage -d (_ 'Allow an upgrade to replace a newer package with an older one')
+complete $rpm_install -l percent -d (_ 'Print percentages as files are unpacked from the package archive. This is intended to make rpm easy to run from other tools')
+complete $rpm_install -l prefix -d (_ 'For relocatable binary packages, translate all file paths that start with the installation prefix in the package relocation hint(s) to NEWPATH') -xa "(__fish_complete_directory (commandline -ct) 'Directory prefix for relocatable packages')"
+complete $rpm_install -l relocate -x -d (_ "Translate all paths that start with first half of following parameter to second half of following parameter" )
+complete $rpm_install -l repackage -d (_ 'Re-package the files before erasing')
+complete $rpm_install -l replacefiles -d (_ 'Install the packages even if they replace files from other, already installed, packages')
+complete $rpm_install -l replacepkgs -d (_ 'Install the packages even if some of them are already installed on this system')
+complete $rpm_install -l test -d (_ "Don't install the package, simply check for and report potential conflicts")
+set -e rpm_install
+
+set -- rpm_query -c rpm -n "__fish_contains_opt -s q query"
+complete $rpm_query -l changelog -d (_ 'Display change information for the package')
+complete $rpm_query -s c -l configfiles -d (_ 'List only configuration files (implies -l)')
+complete $rpm_query -s d -l docfiles -d (_ 'List only documentation files (implies -l)')
+complete $rpm_query -l dump -d (_ 'Dump file information. Must be used with at least one of -l, -c, -d')
+complete $rpm_query -l filesbypkg -d (_ 'List all the files in each selected package')
+complete $rpm_query -s i -l info -d (_ 'Display package information, including name, version, and description. Uses --queryformat if specified')
+complete $rpm_query -l last -d (_ 'Orders the package listing by install time')
+complete $rpm_query -s l -l list -d (_ 'List files in package')
+complete $rpm_query -l provides -d (_ 'List capabilities this package provides')
+complete $rpm_query -s R -l requires -d (_ 'List packages on which this package depends')
+complete $rpm_query -l scripts -d (_ 'List the package specific scriptlets')
+complete $rpm_query -s s -l state -d (_ 'Display the states of files in the package. The state of each file is one of normal, not installed, or replaced')
+complete $rpm_query -l triggers -d (_ 'Display the trigger scripts contained in the package')
+complete $rpm_query -l triggerscripts -d (_ 'Display the trigger scripts contained in the package')
+set -e rpm_query
+
+set -- rpm_select -c rpm -n "__fish_contains_opt -s q -s V query verify"
+
+complete $rpm_select -a "(__fish_print_packages)"
+complete $rpm_select -s a -l all -d (_ 'Query all installed packages')
+complete $rpm_select -s f -l file -d (_ 'Query package owning specified file') -r
+complete $rpm_select -l fileid -d (_ 'Query package that contains a given file identifier, i.e. the MD5 digest of the file contents') -x
+complete $rpm_select -s g -l group -d (_ 'Query packages with the specified group') -x
+complete $rpm_select -l hdrid -d (_ 'Query package that contains a given header identifier, i.e. the SHA1 digest of the immutable header region') -x
+complete $rpm_select -s p -l package -d (_ 'Query an (uninstalled) package in specified file') -xa "(__fish_complete_suffix (commandline -ct) .rpm 'Query package file')"
+complete $rpm_select -l pkgid -d (_ 'Query package that contains a given package identifier, i.e. the MD5 digest of the combined header and payload contents') -x
+complete $rpm_select -l specfile -d (_ 'Parse and query specified spec-file as if it were a package') -xa "(__fish_complete_suffix (commandline -ct) .spec 'Query package spec file')"
+complete $rpm_select -l tid -d (_ 'Query package(s) that have the specified TID (transaction identifier)') -x
+complete $rpm_select -l triggeredby -d (_ 'Query packages that are triggered by the specified packages') -x -a "(__fish_print_packages)"
+complete $rpm_select -l whatprovides -d (_ 'Query all packages that provide the specified capability') -x
+complete $rpm_select -l whatrequires -d (_ 'Query all packages that requires the specified capability for functioning') -x
+set -e rpm_select
+
+set -- rpm_verify -c rpm -n "__fish_contains_opt -s V verify"
+complete $rpm_verify -l nodeps -d (_ "Don't verify dependencies of packages")
+complete $rpm_verify -l nodigest -d (_ "Don't verify package or header digests when reading")
+complete $rpm_verify -l nofiles -d (_ "Don't verify any attributes of package files")
+complete $rpm_verify -l noscripts -d (_ "Don't execute the %verifyscript scriptlet")
+complete $rpm_verify -l nosignature -d (_ "Don't verify package or header signatures when reading")
+complete $rpm_verify -l nolinkto -d (_ "Don't verify linkto attribute")
+complete $rpm_verify -l nomd5 -d (_ "Don't verify md5 attribute")
+complete $rpm_verify -l nosize -d (_ "Don't verify size attribute")
+complete $rpm_verify -l nouser -d (_ "Don't verify user attribute")
+complete $rpm_verify -l nogroup -d (_ "Don't verify group attribute")
+complete $rpm_verify -l nomtime -d (_ "Don't verify time attribute")
+complete $rpm_verify -l nomode -d (_ "Don't verify mode attribute")
+complete $rpm_verify -l nordev -d (_ "Don't verify dev attribute")
+set -e rpm_verify
+
+set -- rpm_erase -c rpm -n "__fish_contains_opt -s e erase"
+complete $rpm_erase -a "(__fish_print_packages)"
+complete $rpm_erase -l allmatches -d (_ 'Remove all versions of the package which match specified string')
+complete $rpm_erase -l nodeps -d (_ "Don't check dependencies before uninstalling the packages")
+complete $rpm_erase -l noscripts -d (_ "Don't execute scriplets")
+complete $rpm_erase -l nopreun -d (_ "Don't execute preun scriptlet")
+complete $rpm_erase -l nopostun -d (_ "Don't execute postun scriptlet")
+complete $rpm_erase -l notriggers -d (_ "Don't execute trigger scriptlets")
+complete $rpm_erase -l notriggerun -d (_ "Don't execute triggerun scriptlets")
+complete $rpm_erase -l notriggerpostun -d (_ "Don't execute triggerpostun scriptlets")
+complete $rpm_erase -l repackage -d (_ 'Re-package the files before erasing')
+complete $rpm_erase -l test -d (_ "Don't really uninstall anything" )
+set -e rpm_erase
+
+set -- rpm_mode -c rpm -n '__fish_contains_opt -s e -s i -s F -s V -s U -s q erase install freshen verify upgrade query; if test $status = 0; false; else; true; end'
+complete $rpm_mode -s i -l install -d (_ 'Install new package')
+complete $rpm_mode -s U -l upgrade -d (_ 'Upgrade existing package')
+complete $rpm_mode -s F -l freshen -d (_ 'Upgrade package if already installed')
+complete $rpm_mode -s q -l query -d (_ 'Query installed packages')
+complete $rpm_mode -s V -l verify -d (_ 'Verify package integrity')
+complete $rpm_mode -s e -l erase -d (_ 'Erase package')
+set -e rpm_mode
+
+complete -c rpm -xa '(__fish_complete_suffix (commandline -ct) .rpm (_ "Package") )'
diff --git a/share/completions/ruby.fish b/share/completions/ruby.fish
new file mode 100644
index 00000000..08a061ef
--- /dev/null
+++ b/share/completions/ruby.fish
@@ -0,0 +1,25 @@
+#Completions for ruby
+complete -c ruby -s 0 -d (_ 'Specify record separator')
+complete -c ruby -s a -d (_ 'Turn on autosplit mode')
+complete -c ruby -s c -d (_ 'Check syntax')
+complete -c ruby -s K -d (_ 'Kanji code-set')
+complete -c ruby -s d -l debug -d (_ 'Debugger')
+complete -c ruby -s e -x -d (_ 'Execute command')
+complete -c ruby -s h -l help -d (_ 'Display help and exit')
+complete -c ruby -s F -d (_ 'Set regexp used to split input')
+complete -c ruby -s i -d (_ 'Edit files in-place')
+complete -c ruby -s I -d (_ 'Include path')
+complete -c ruby -s l -d (_ 'Automatic line ending processing')
+complete -c ruby -s n -d (_ 'Loop script')
+complete -c ruby -s p -d (_ 'Loop script, print $_')
+complete -c ruby -s r -r -d (_ 'Require file')
+complete -c ruby -s s -d (_ 'Define custom switches')
+complete -c ruby -s S -d (_ 'Search $PATH for script')
+complete -c ruby -s T -d (_ 'Taint checking')
+complete -c ruby -s v -l verbose -d (_ 'Verbose mode')
+complete -c ruby -s w -d (_ 'Verbose mode without message')
+complete -c ruby -l version -d (_ 'Display version and exit')
+complete -c ruby -s x -d (_ 'Extract script')
+complete -c ruby -s X -x -a '(__fish_complete_directory (commandline -ct))' -d (_ 'Directory')
+complete -c ruby -s y -l yydebug -d (_ 'Compiler debug mode')
+
diff --git a/share/completions/scp.fish b/share/completions/scp.fish
new file mode 100644
index 00000000..111a7300
--- /dev/null
+++ b/share/completions/scp.fish
@@ -0,0 +1,35 @@
+#
+# Load common ssh options
+#
+
+__fish_complete_ssh scp
+
+#
+# scp specific completions
+#
+
+complete -c scp -d Hostname -a "
+
+(
+ #Find a suitable hostname from the knownhosts files
+ cat ~/.ssh/known_hosts{,2} ^/dev/null|cut -d ' ' -f 1| cut -d , -f 1
+):
+
+(
+ #Prepend any username specified in the completion to the hostname
+ echo (commandline -ct)|sed -ne 's/\(.*@\).*/\1/p'
+)(
+ cat ~/.ssh/known_hosts{,2} ^/dev/null|cut -d ' ' -f 1| cut -d , -f 1
+):
+
+(__fish_print_users)@
+
+"
+complete -c scp -s B -d (_ "Batch mode")
+complete -c scp -s l -x -d (_ "Bandwidth limit")
+complete -c scp -s P -x -d (_ "Port")
+complete -c scp -s p -d (_ "Preserves modification times, access times, and modes from the original file")
+complete -c scp -s q -d (_ "Do not display progress bar")
+complete -c scp -s r -d (_ "Recursively copy")
+complete -c scp -s S -d (_ "Encyption program")
+
diff --git a/share/completions/screen.fish b/share/completions/screen.fish
new file mode 100644
index 00000000..2208bc47
--- /dev/null
+++ b/share/completions/screen.fish
@@ -0,0 +1,37 @@
+function __fish_complete_screen -d (_ "Print a list of running screen sessions")
+ screen -list |grep \^\t.\*\(.\*\)|sed -e 's/\t\(.*\)\t(\(.*\))/\1\tScreen: \2/'
+end
+
+complete -c screen -x
+complete -c screen -s a -d 'Include all capabilitys'
+complete -c screen -s A -d 'Adapt window size'
+complete -c screen -s c -r -d 'Specify init file'
+complete -c screen -s d -d 'Detach screen' -a '(__fish_complete_screen)'
+complete -c screen -s D -d 'Detach screen' -a '(__fish_complete_screen)'
+complete -c screen -s r -d 'Reattach session' -a '(__fish_complete_screen)'
+complete -c screen -s R -d 'Reattach/create session'
+complete -c screen -o RR -d 'Reattach/create any session'
+complete -c screen -s e -x -d 'Escape character'
+complete -c screen -s f -d 'Flow control on'
+complete -c screen -o fn -d 'Flow control off'
+complete -c screen -o fa -d 'Flow control automatic'
+complete -c screen -s h -x -d 'History length'
+complete -c screen -s i -d 'Interrupt display on C-c'
+complete -c screen -s l -d 'Login on'
+complete -c screen -o ln -d 'Login off'
+complete -c screen -o ls -d 'List sessions'
+complete -c screen -o list -d 'List sessions'
+complete -c screen -s L -d 'Log on'
+complete -c screen -s m -d 'Ignore $STY'
+complete -c screen -s O -d 'Optimal output'
+complete -c screen -s p -d 'Preselect window'
+complete -c screen -s q -d 'Quiet mode'
+complete -c screen -s s -r -d 'Set shell'
+complete -c screen -s S -x -d 'Session name'
+complete -c screen -s t -x -d 'Session title'
+complete -c screen -s U -d 'UTF-8 mode'
+complete -c screen -s v -d 'Display version and exit'
+complete -c screen -o wipe -d 'Wipe dead sessions'
+complete -c screen -s x -d 'Multi attach'
+complete -c screen -s X -r -d 'Send command'
+
diff --git a/share/completions/sed.fish b/share/completions/sed.fish
new file mode 100644
index 00000000..d32d9c26
--- /dev/null
+++ b/share/completions/sed.fish
@@ -0,0 +1,38 @@
+#
+# Completions for sed
+#
+
+# Test if we are using GNU sed
+
+set -l is_gnu
+sed --version >/dev/null ^/dev/null; and set is_gnu --is-gnu
+
+# Shared ls switches
+
+__fish_gnu_complete -c sed -s n -l quiet -d (_ "Silent mode") $is_gnu
+__fish_gnu_complete -c sed -s e -l expression -x -d (_ "Evaluate expression") $is_gnu
+__fish_gnu_complete -c sed -s f -l file -r -d (_ "Evalute file") $is_gnu
+__fish_gnu_complete -c sed -s i -l in-place -d (_ "Edit files in place") $is_gnu
+
+if test -n "$is_gnu"
+
+ # GNU specific features
+
+ complete -c sed -l silent -d (_ "Silent mode")
+ complete -c sed -s l -l line-length -x -d (_ "Specify line-length")
+ complete -c sed -l posix -d (_ "Disable all GNU extensions")
+ complete -c sed -s r -l regexp-extended -d (_ "Use extended regexp")
+ complete -c sed -s s -l separate -d (_ "Consider files as separate")
+ complete -c sed -s u -l unbuffered -d (_ "Use minimal IO buffers")
+ complete -c sed -l help -d (_ "Display help and exit")
+ complete -c sed -s V -l version -d (_ "Display version and exit")
+
+else
+
+ # If not a GNU system, assume we have standard BSD ls features instead
+
+ complete -c sed -s E -d (_ "Use extended regexp")
+ complete -c sed -s a -d (_ "Delay opening files until a command containing the related 'w' function is applied")
+ complete -c sed -s l -d (_ "Use line buffering")
+
+end
diff --git a/share/completions/service.fish b/share/completions/service.fish
new file mode 100644
index 00000000..e4d40a6d
--- /dev/null
+++ b/share/completions/service.fish
@@ -0,0 +1,7 @@
+
+# Fist argument is the names of the service, i.e. a file in /etc/init.d
+complete -c service -n "test (count (commandline -poc)) = 1" -xa "(command ls /etc/init.d)" -d (_ "Service name")
+
+#The second argument is what action to take with the service
+complete -c service -n "test (count (commandline -poc)) -gt 1" -xa '$__fish_service_commands'
+
diff --git a/share/completions/set.fish b/share/completions/set.fish
new file mode 100644
index 00000000..77e64972
--- /dev/null
+++ b/share/completions/set.fish
@@ -0,0 +1,77 @@
+#
+# Completions for the 'set' builtin
+#
+
+#
+# All locale variables used by set completions
+#
+
+set -g __fish_locale_vars LANG LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME
+
+#
+# Various helper functions
+#
+
+function __fish_set_is_color -d 'Test if We are specifying a color value for the prompt'
+ set cmd (commandline -poc)
+ set -e cmd[1]
+ for i in $cmd
+ switch $i
+
+ case 'fish_color_*' 'fish_pager_color_*'
+ return 0
+
+ case '-*'
+
+ case '*'
+ return 1
+ end
+ end
+ return 1
+end
+
+function __fish_set_is_locale -d 'Test if We are specifying a locale value for the prompt'
+ set cmd (commandline -poc)
+ set -e cmd[1]
+ for i in $cmd
+ switch $i
+
+ case $__fish_locale_vars
+ return 0
+
+ case '-*'
+
+ case '*'
+ return 1
+ end
+ end
+ return 1
+end
+
+#
+# Completions
+#
+
+# Regular switches, set only accepts these before the variable name,
+# so we need to test using __fish_is_first_token
+
+complete -c set -n '__fish_is_first_token' -s e -l erase -d (_ "Erase variable")
+complete -c set -n '__fish_is_first_token' -s x -l export -d (_ "Export variable to subprocess")
+complete -c set -n '__fish_is_first_token' -s u -l unexport -d (_ "Do not export variable to subprocess")
+complete -c set -n '__fish_is_first_token' -s g -l global -d (_ "Make variable scope global")
+complete -c set -n '__fish_is_first_token' -s l -l local -d (_ "Make variable scope local")
+complete -c set -n '__fish_is_first_token' -s U -l universal -d (_ "Make variable scope universal, i.e. share variable with all the users fish processes on this computer")
+complete -c set -n '__fish_is_first_token' -s q -l query -d (_ "Test if variable is defined")
+complete -c set -n '__fish_is_first_token' -s h -l help -d (_ "Display help and exit")
+
+# Complete using preexisting variable names
+complete -c set -n '__fish_is_first_token' -x -a "(set|sed -e 's/ /\tVariable: /')"
+
+# Color completions
+complete -c set -n '__fish_set_is_color' -x -a '(set_color --print-colors)' -d (_ Color)
+complete -c set -n '__fish_set_is_color' -s b -l background -x -a '(set_color --print-colors)' -d (_ "Change background color")
+complete -c set -n '__fish_set_is_color' -s o -l bold -d (_ 'Make font bold')
+
+# Locale completions
+complete -c set -n '__fish_is_first_token' -x -a '$__fish_locale_vars' -d 'Locale variable'
+complete -c set -n '__fish_set_is_locale' -x -a '(locale -a)' -d (_ Locale)
diff --git a/share/completions/set_color.fish b/share/completions/set_color.fish
new file mode 100644
index 00000000..cb42c933
--- /dev/null
+++ b/share/completions/set_color.fish
@@ -0,0 +1,3 @@
+complete -c set_color -x -d (_ "Color") -a '(set_color --print-colors)'
+complete -c set_color -s b -l background -x -a '(set_color --print-colors)' -d (_ "Change background color")
+complete -c set_color -s o -l bold -d (_ 'Make font bold')
diff --git a/share/completions/sort.fish b/share/completions/sort.fish
new file mode 100644
index 00000000..0fa9c170
--- /dev/null
+++ b/share/completions/sort.fish
@@ -0,0 +1,21 @@
+complete -c sort -s b -l ignore-leading-blanks -d (_ "Ignore leading blanks")
+complete -c sort -s d -l dictionary-order -d (_ "Consider only blanks and alphanumerics")
+complete -c sort -s f -l ignore-case -d (_ "Ignore case")
+complete -c sort -s g -l general-numeric-sort -d (_ "Compare general numeric value")
+complete -c sort -s i -l ignore-nonprinting -d (_ "Consider only printable")
+complete -c sort -s M -l month-sort -d (_ "Compare month names")
+complete -c sort -s n -l numeric-sort -d (_ "Compare string numerical value")
+complete -c sort -s r -l reverse -d (_ "Reverse results")
+complete -c sort -s c -l check -d (_ "Only check if sorted")
+complete -c sort -s k -l key -d (_ "Define key")
+complete -c sort -s m -l merge -d (_ "Merge sorted files")
+complete -c sort -s o -l output -f -d (_ "Write to file")
+complete -c sort -s s -l stable -d (_ "Stabilize sort")
+complete -c sort -s S -l buffer-size -r -d (_ "Set memory buffer size")
+complete -c sort -s t -l field-separator -d (_ "Field separator")
+complete -c sort -s T -l temporary-directory -r -d (_ "Set temporary directory")
+complete -c sort -s u -l unique -d (_ "Output only first of equal lines")
+complete -c sort -s z -l zero-terminated -d (_ "Lines end with 0 byte")
+complete -c sort -l help -d (_ "Display help and exit")
+complete -c sort -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/ssh.fish b/share/completions/ssh.fish
new file mode 100644
index 00000000..2aff2dea
--- /dev/null
+++ b/share/completions/ssh.fish
@@ -0,0 +1,45 @@
+#
+# Load common ssh options
+#
+
+__fish_complete_ssh ssh
+
+complete -x -c ssh -d Hostname -a "
+
+(__fish_print_hostnames)
+
+(
+ #Prepend any username specified in the completion to the hostname
+ echo (commandline -ct)|sed -ne 's/\(.*@\).*/\1/p'
+)(__fish_print_hostnames)
+
+(__fish_print_users)@
+"
+
+complete -c ssh -s a -d (_ "Disables forwarding of the authentication agent")
+complete -c ssh -s A -d (_ "Enables forwarding of the authentication agent")
+complete -x -c ssh -s b -d (_ "Interface to transmit from") -a "
+(
+ cat /proc/net/arp ^/dev/null| grep -v '^IP'|cut -d ' ' -f 1 ^/dev/null
+)
+"
+
+complete -x -c ssh -s e -d (_ "Escape character") -a "^ none"
+complete -c ssh -s f -d (_ "Go to background")
+complete -c ssh -s g -d (_ "Allow remote host to connect to local forwarded ports")
+complete -c ssh -s I -d (_ "Smartcard device")
+complete -c ssh -s k -d (_ "Disable forwarding of Kerberos tickets")
+complete -c ssh -s l -x -a "(__fish_complete_users)" -d (_ "User")
+complete -c ssh -s m -d (_ "MAC algorithm")
+complete -c ssh -s n -d (_ "Prevent reading from stdin")
+complete -c ssh -s N -d (_ "Do not execute remote command")
+complete -c ssh -s p -x -d (_ "Port")
+complete -c ssh -s q -d (_ "Quiet mode")
+complete -c ssh -s s -d (_ "Subsystem")
+complete -c ssh -s t -d (_ "Force pseudo-tty allocation")
+complete -c ssh -s T -d (_ "Disable pseudo-tty allocation")
+complete -c ssh -s x -d (_ "Disable X11 forwarding")
+complete -c ssh -s X -d (_ "Enable X11 forwarding")
+complete -c ssh -s L -d (_ "Locally forwarded ports")
+complete -c ssh -s R -d (_ "Remotely forwarded ports")
+complete -c ssh -s D -d (_ "Dynamic port forwarding")
diff --git a/share/completions/sshfs.fish b/share/completions/sshfs.fish
new file mode 100644
index 00000000..76a31493
--- /dev/null
+++ b/share/completions/sshfs.fish
@@ -0,0 +1,33 @@
+#
+# Completions for sshfs
+#
+# Host combinations, borrowed from ssh.fish
+#
+complete -x -c sshfs -d Hostname -a "
+
+(__fish_print_hostnames):
+
+(
+ #Prepend any username specified in the completion to the hostname
+ echo (commandline -ct)|sed -ne 's/\(.*@\).*/\1/p'
+)(__fish_print_hostnames):
+
+(__fish_print_users)@
+"
+#
+# Mount Points, for neatness, I am only mounting under ~/mnt/
+#
+complete -c sshfs -d (_ "Mount point") -x -a '(find ~/mnt -type d)'
+#
+# Command options
+#
+complete -c sshfs -s V -d (_ "Display version and exit")
+complete -c sshfs -s p -x -d (_ "Port")
+complete -c sshfs -s C -d (_ "Compression")
+complete -c sshfs -s o -x -d (_ "Mount options")
+complete -c sshfs -s d -d (_ "Enable debug")
+complete -c sshfs -s f -d (_ "Foreground operation")
+complete -c sshfs -s s -d (_ "Disable multi-threaded operation")
+complete -c sshfs -s r -d (_ "Mount options")
+complete -c sshfs -s h -d (_ "Display help and exit")
+
diff --git a/share/completions/status.fish b/share/completions/status.fish
new file mode 100644
index 00000000..8f6fcc14
--- /dev/null
+++ b/share/completions/status.fish
@@ -0,0 +1,10 @@
+
+complete -c status -l is-command-substitution -d (_ "Test if a command substitution is currently evaluated")
+complete -c status -l is-block -d (_ "Test if a code block is currently evaluated")
+complete -c status -l is-interactive -d (_ "Test if this is an interactive shell")
+complete -c status -l is-login -d (_ "Test if this is a login shell")
+complete -c status -l is-full-job-control -d (_ "Test if all new jobs are put under job control")
+complete -c status -l is-interactive-job-control -d (_ "Test if only interactive new jobs are put under job control")
+complete -c status -l is-no-job-control -d (_ "Test if new jobs are never put under job control")
+complete -c status -s j -l job-control -xa "full interactive none" -d (_ "Set which jobs are out under job control")
+complete -c status -s t -l print-stack-trace -d (_ "Print a list of all function calls leading up to running the current command")
diff --git a/share/completions/su.fish b/share/completions/su.fish
new file mode 100644
index 00000000..6bdabdd0
--- /dev/null
+++ b/share/completions/su.fish
@@ -0,0 +1,12 @@
+# Completions for su
+
+complete -x -c su -a "(__fish_complete_users)"
+complete -c su -s l -l login -d (_ "Make login shell")
+complete -r -c su -s c -l command -d (_ "Pass command to shell") -xa "(__fish_complete_command)"
+complete -c su -s f -l fast -d (_ "Pass -f to the shell")
+complete -c su -s m -l preserve_environment -d (_ "Preserve environment")
+complete -c su -s p -d (_ "Preserve environment")
+complete -x -c su -s s -l shell -a "(cat /etc/shells)"
+complete -c su -l help -d (_ "Display help and exit")
+complete -c su -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/sudo.fish b/share/completions/sudo.fish
new file mode 100644
index 00000000..1407e746
--- /dev/null
+++ b/share/completions/sudo.fish
@@ -0,0 +1,8 @@
+#
+# Completion for sudo
+#
+
+complete -c sudo -d (_ "Command to run") -x -a "(__fish_complete_subcommand)"
+
+complete -c sudo -s h -n "__fish_no_arguments" -d (_ "Display help and exit")
+complete -c sudo -s v -n "__fish_no_arguments" -d (_ "Validate")
diff --git a/share/completions/svn.fish b/share/completions/svn.fish
new file mode 100644
index 00000000..a2f7f169
--- /dev/null
+++ b/share/completions/svn.fish
@@ -0,0 +1,131 @@
+#
+# Completions for the svn VCS command
+#
+
+function __fish_svn_subcommand_allowed
+ set -l svncommands add blame cat checkout cleanup commit copy delete diff di help import info list lock log merge mkdir move propdel propedit propget proplist resolved revert status switch unlock update
+ set -l -- cmd (commandline -poc)
+ set -e cmd[1]
+ for i in $cmd
+ if contains -- $i $svncommands
+ return 1
+ end
+ end
+ return 0
+end
+
+#
+# If no subcommand has been specified, complete using all available subcommands
+#
+
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'add\t"'(_ "Place files or directories under version control")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'blame\t"'(_ "Output files/URLs with revision and author information inline")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'cat\t"'(_ "Output content of files/URLs")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'checkout\t"'(_ "Check out a working copy from the repository")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'cleanup\t"'(_ "Recursively clean up the working copy")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'commit\t"'(_ "Send changes from your working copy to the repository")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'import\t"'(_ "Commit an unversioned file or tree into the repository")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'info\t"'(_ "Display information about a local or remote item")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'list\t"'(_ "List directory entries in the repository")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'lock\t"'(_ "Lock working copy paths or URLs in the repository")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'log\t"'(_ "Show the log messages for a set of revision(s) and/or file(s)")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'merge\t"'(_ "Apply the differences between two sources to a working copy path")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'mkdir\t"'(_ "Create a new directory under version control")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'move\t"'(_ "Move and/or rename something in working copy or repository")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'propdel\t"'(_ "Remove a property from files, dirs, or revisions")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'propedit\t"'(_ "Edit a property with an external editor on targets")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'propget\t"'(_ "Print value of a property on files, dirs, or revisions")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'proplist\t"'(_ "List all properties on files, dirs, or revisions")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'resolved\t"'(_ "Remove conflicted state on working copy files or directories")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'revert\t"'(_ "Restore pristine working copy file")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'status\t"'(_ "Print the status of working copy files and directories")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'switch\t"'(_ "Update the working copy to a different URL")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'unlock\t"'(_ "Unlock working copy paths or URLs")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'update\t"'(_ "Bring changes from the repository into the working copy")'"'
+complete -c svn -n '__fish_svn_subcommand_allowed' -xa 'help\t"'(_ "Describe the usage of this program or its subcommands")'"'
+
+# -s/--revision
+complete -c svn -n '__fish_seen_subcommand_from blame cat checkout info list log merge move propdel propedit propget proplist switch update' -x -s r -l revision -d (_ "Specify revision")
+# --targets
+complete -c svn -n '__fish_seen_subcommand_from add commit import info lock log resolved revert unlock' -r -l targets -d (_ "Pass contents of file as additional args")
+# -N/--non-recursive
+complete -c svn -n '__fish_seen_subcommand_from add checkout commit import merge status switch update' -s N -l non-recursive -d (_ "Don't recurse")
+# -q/--quiet
+complete -c svn -n '__fish_seen_subcommand_from add checkout commit import log merge mkdir move propdel proplist resolved revert status switch update help' -s q -l quiet -d (_ "Print as little as possible")
+# --force
+complete -c svn -n '__fish_seen_subcommand_from add lock merge move propedit unlock' -l force -d (_ "Force operation to run")
+# --auto-props
+complete -c svn -n '__fish_seen_subcommand_from add' -l auto-props -d (_ "Enable automatic properties")
+# --no-auto-props
+complete -c svn -n '__fish_seen_subcommand_from add' -l no-auto-props -d (_ "Disable automatic properties")
+# -v/--verbose
+complete -c svn -n '__fish_seen_subcommand_from blame cat log proplist status' -s v -l verbose -d (_ "Print extra info")
+# --username
+complete -c svn -n '__fish_seen_subcommand_from blame cat checkout commit import info list lock log merge mkdir move propdel propedit propget proplist status switch unlock update' -x -l username -d (_ "Specify a username")
+# --password
+complete -c svn -n '__fish_seen_subcommand_from blame cat checkout commit import info list lock log merge mkdir move propdel propedit propget proplist status switch unlock update' -x -l password -d (_ "Specify a password")
+# --no-auth-cache
+complete -c svn -n '__fish_seen_subcommand_from blame cat checkout commit import info list lock log merge mkdir move propdel propedit propget proplist status switch unlock update' -l no-auth-cache -d (_ "Don't cache auth tokens")
+# --non-interactive
+complete -c svn -n '__fish_seen_subcommand_from blame cat checkout commit import info list lock log merge mkdir move propdel propedit propget proplist status switch unlock update' -l non-interactive -d (_ "Do no interactive prompting")
+# --config-dir
+complete -c svn -n '__fish_seen_subcommand_from add cleanup blame cat checkout commit import info list lock log merge mkdir move propdel propedit propget proplist resolved revert status switch unlock update help' -r -l config-dir -d (_ "Read user config files from named directory")
+# --no-unlock
+complete -c svn -n '__fish_seen_subcommand_from commit import' -l no-unlock -d (_ "Don't unlock targets")
+# -m/--message
+complete -c svn -n '__fish_seen_subcommand_from commit import lock mkdir move' -x -s m -l message -d (_ "Specify commit message")
+# -F/--file
+complete -c svn -n '__fish_seen_subcommand_from commit import lock mkdir move' -r -s F -l file -d (_ "Read commit message from file")
+# --force-log
+complete -c svn -n '__fish_seen_subcommand_from commit import lock mkdir move' -l force-log -d (_ "Force log message source validity")
+# --editor-cmd
+complete -c svn -n '__fish_seen_subcommand_from commit import mkdir move propedit' -x -l editor-cmd -d (_ "Specify external editor")
+# --recursive
+complete -c svn -n '__fish_seen_subcommand_from info list propdel propget proplist resolved revert' -s R -l recursive -d (_ "Descend recursively")
+# --incremental
+complete -c svn -n '__fish_seen_subcommand_from list log' -l incremental -d (_ "Give output suitable for concatenation")
+# --xml
+complete -c svn -n '__fish_seen_subcommand_from list log' -l xml -d (_ "Output in XML")
+# --diff3-cmd
+complete -c svn -n '__fish_seen_subcommand_from cleanup merge switch update' -x -l diff3-cmd -d (_ "Specify merge command")
+# --encoding
+complete -c svn -n '__fish_seen_subcommand_from lock mkdir move propedit' -x -l encoding -d (_ "Force encoding")
+# --revprop
+complete -c svn -n '__fish_seen_subcommand_from propdel propedit propget' -l revprop -d (_ "Operate on revision property")
+# --strict
+complete -c svn -n '__fish_seen_subcommand_from propget' -l strict -d (_ "Use strict semantics")
+# --ignore-externals
+complete -c svn -n '__fish_seen_subcommand_from checkout status update' -l ignore-externals -d (_ "Ignore externals definitions")
+
+#
+# Flags for svn log
+#
+set -l logopt -c svn -n 'contains log (commandline -poc)'
+complete $logopt -l stop-on-copy -d (_ "Do not cross copies")
+complete $logopt -l limit -d (_ "Maximum number of log entries")
+
+#
+# Flags for svn merge
+#
+set -l mergeopt -c svn -n 'contains merge (commandline -poc)'
+complete $mergeopt -l dry-run -d (_ "Make no changes")
+complete $mergeopt -l ignore-ancestry -d (_ "Ignore ancestry when calculating merge")
+
+#
+# Flags for svn status
+#
+set -l statusopt -c svn -n 'contains status (commandline -poc)'
+complete $statusopt -s u -l show-updates -d (_ "Display update information")
+complete $statusopt -l no-ignore -d (_ "Disregard ignores")
+
+#
+# Flags for svn switch
+#
+set -l switchopt -c svn -n 'contains switch (commandline -poc)'
+complete $switchopt -l relocate -d (_ "Relocate VIA URL-rewriting")
+
+#
+# Flags for svn help
+#
+set -l helpopt -c svn -n 'contains help (commandline -poc)'
+complete $helpopt -l version -d (_ "Print client version info")
diff --git a/share/completions/tar.fish b/share/completions/tar.fish
new file mode 100644
index 00000000..0da0cbe0
--- /dev/null
+++ b/share/completions/tar.fish
@@ -0,0 +1,62 @@
+complete -c tar -s A -l catenate -d (_ "Append archive to archive")
+complete -c tar -l concatenate -d (_ "Append archive to archive")
+complete -c tar -s c -l create -d (_ "Create archive")
+complete -c tar -s d -l diff -d (_ "Compare archive and filesystem")
+complete -c tar -l compare -d (_ "Compare archive and filesystem")
+complete -c tar -l delete -d (_ "Delete from archive")
+complete -c tar -s r -l append -d (_ "Append files to archive")
+complete -c tar -s t -l list -d (_ "List archive")
+complete -c tar -s u -l update -d (_ "Append new files")
+complete -c tar -s x -l extract -d (_ "Extract from archive")
+complete -c tar -l get -d (_ "Extract from archive")
+complete -c tar -l atime-preserve -d (_ "Keep access time")
+complete -c tar -s b -l block-size -d (_ "Block size")
+complete -c tar -s B -l read-full-blocks -d (_ "Reblock while reading")
+complete -c tar -s C -l directory -r -d (_ "Change directory")
+complete -c tar -l checkpoint -d (_ "Print directory names")
+complete -c tar -s f -l file -r -d (_ "Archive file")
+complete -c tar -l force-local -d (_ "Archive is local")
+complete -c tar -s F -l info-script -d (_ "Run script at end of tape")
+complete -c tar -s G -l incremental -d (_ "Use old incremental GNU format")
+complete -c tar -s g -l listed-incremental -d (_ "Use new incremental GNU format")
+complete -c tar -s h -l dereference -d (_ "Dereference symlinks")
+complete -c tar -s i -l ignore-zeros -d (_ "Ignore zero block in archive")
+complete -c tar -s j -l bzip -d (_ "Filter through bzip2")
+complete -c tar -l ignore-failed-read -d (_ "Don't exit on unreadable files")
+complete -c tar -s k -l keep-old-files -d (_ "Don't overwrite")
+complete -c tar -s K -l starting-file -r -d (_ "Starting file in archive")
+complete -c tar -s l -l one-file-system -d (_ "Stay in local filesystem")
+complete -c tar -s L -l tape-length -r -d (_ "Tape length")
+complete -c tar -s m -l modification-time -d (_ "Don't extract modification time")
+complete -c tar -s M -l multi-volume -d (_ "Multi volume archive")
+complete -c tar -s N -l after-date -r -d (_ "Only store newer files")
+complete -c tar -s o -l old-archive -d (_ "Use V7 format")
+complete -c tar -l portability -d (_ "Use V7 format")
+complete -c tar -s O -l to-stdout -d (_ "Extract to stdout")
+complete -c tar -s p -l same-permissions -d (_ "Extract all permissions")
+complete -c tar -l preserve-permissions -d (_ "Extract all permissions")
+complete -c tar -s P -l absolute-paths -d (_ "Don't strip leading /")
+complete -c tar -l preserve -d (_ "Preserve all permissions and do not sort file arguments")
+complete -c tar -s R -l record-number -d (_ "Show record number")
+complete -c tar -l remove-files -d (_ "Remove files after adding to archive")
+complete -c tar -s s -l same-order -d (_ "Do not sort file arguments")
+complete -c tar -l preserve-order -d (_ "Do not sort file arguments")
+complete -c tar -l same-owner -d (_ "Preserve file ownership")
+complete -c tar -s S -l sparse -d (_ "Handle sparse files")
+complete -c tar -s T -l files-from -r -d (_ "Extract file from file")
+complete -c tar -l null -d (_ "-T has null-terminated names")
+complete -c tar -l totals -d (_ "Print total bytes written")
+complete -c tar -s v -l verbose -d (_ "Verbose mode")
+complete -c tar -s V -l label -r -d (_ "Set volume name")
+complete -c tar -l version -d (_ "Display version and exit")
+complete -c tar -s w -l interactive -d (_ "Ask for confirmation")
+complete -c tar -l confirmation -d (_ "Ask for confirmation")
+complete -c tar -s W -l vevrify -d (_ "Verify archive")
+complete -c tar -l exclude -r -d (_ "Exclude file")
+complete -c tar -s X -l exclude-from -r -d (_ "Exclude files listed in specified file")
+complete -c tar -s Z -l compress -d (_ "Filter through compress")
+complete -c tar -l uncompress -d (_ "Filter through compress")
+complete -c tar -s z -l gzip -d (_ "Filter through gzip")
+complete -c tar -l gunzip -d (_ "Filter through gzip")
+complete -c tar -l use-compress-program -r -d (_ "Filter through specified program")
+
diff --git a/share/completions/test.fish b/share/completions/test.fish
new file mode 100644
index 00000000..0bbd8c67
--- /dev/null
+++ b/share/completions/test.fish
@@ -0,0 +1,39 @@
+
+complete -c test -l help -d (_ "Display help and exit")
+complete -c test -l version -d (_ "Display version and exit")
+complete -c test -a ! -d (_ "Negate expression")
+complete -c test -s a -d (_ "Logical and")
+complete -c test -s o -d (_ "Logical or")
+complete -c test -s n -d (_ "String length is non-zero")
+complete -c test -s z -d (_ "String length is zero")
+complete -c test -a = -d (_ "Strings are equal")
+complete -c test -a != -d (_ "Strings are not equal")
+complete -c test -o eq -d (_ "Integers are equal")
+complete -c test -o ge -d (_ "Left integer larger than or equal to right integer")
+complete -c test -o gt -d (_ "Left integer larger than right integer")
+complete -c test -o le -d (_ "Left integer less than or equal to right integer")
+complete -c test -o lt -d (_ "Left integer less than right integer")
+complete -c test -o ne -d (_ "Left integer not equal to right integer")
+complete -c test -o ef -d (_ "Left file equal to right file")
+complete -c test -o nt -d (_ "Left file newer than right file")
+complete -c test -o ot -d (_ "Left file older than right file")
+complete -c test -s b -d (_ "File is block device")
+complete -c test -s c -d (_ "File is character device")
+complete -c test -s d -d (_ "File is directory")
+complete -c test -s e -d (_ "File exists")
+complete -c test -s f -d (_ "File is regular")
+complete -c test -s g -d (_ "File is set-group-ID")
+complete -c test -s h -d (_ "File is symlink")
+complete -c test -s G -d (_ "File owned by effective group ID")
+complete -c test -s k -d (_ "File has sticky bit set")
+complete -c test -s L -d (_ "File is symlink")
+complete -c test -s O -d (_ "File owned by effective user ID")
+complete -c test -s p -d (_ "File is named pipe")
+complete -c test -s r -d (_ "File is readable")
+complete -c test -s s -d (_ "File size is non-zero")
+complete -c test -s S -d (_ "File is socket")
+complete -c test -s t -d (_ "FD is terminal")
+complete -c test -s u -d (_ "File set-user-ID bit is set")
+complete -c test -s w -d (_ "File is writable")
+complete -c test -s x -d (_ "File is executable")
+
diff --git a/share/completions/tex.fish b/share/completions/tex.fish
new file mode 100644
index 00000000..e62d33a4
--- /dev/null
+++ b/share/completions/tex.fish
@@ -0,0 +1,5 @@
+
+set -l cmds -c etex -c tex -c elatex -c latex -c pdflatex -c pdfelatex -c pdftex -c pdfetex -c omega
+
+__fish_complete_tex tex
+
diff --git a/share/completions/time.fish b/share/completions/time.fish
new file mode 100644
index 00000000..6ee38288
--- /dev/null
+++ b/share/completions/time.fish
@@ -0,0 +1,11 @@
+
+complete -c time -a "(__fish_complete_subcommand -- -o --output -f --format)" -d (_ "Command")
+
+complete -c time -s f -l format -n "__fish_no_arguments" -d (_ "Specify output format") -x
+complete -c time -s p -l portable -n "__fish_no_arguments" -d (_ "Use the portable output format")
+complete -c time -s o -l output -n "__fish_no_arguments" -d (_ "Do not send the results to stderr, but overwrite the specified file") -r
+complete -c time -s a -l append -n "__fish_no_arguments" -d (_ "(Used together with -o) Do not overwrite but append")
+complete -c time -s v -l verbose -n "__fish_no_arguments" -d (_ "Verbose mode")
+complete -c time -l help -n "__fish_no_arguments" -d (_ "Display help and exit")
+complete -c time -s V -l version -n "__fish_no_arguments" -d (_ "Display version and exit")
+
diff --git a/share/completions/top.fish b/share/completions/top.fish
new file mode 100644
index 00000000..b247dafe
--- /dev/null
+++ b/share/completions/top.fish
@@ -0,0 +1,14 @@
+# Completions for top
+complete -c top -s b -d (_ "Batch mode")
+complete -c top -s c -d (_ "Toggle command line/program name")
+complete -c top -s d -d (_ "Update interval") -x
+complete -c top -s h -d (_ "Display help and exit")
+complete -c top -s i -d (_ "Toggle idle processes")
+complete -c top -s n -d (_ "Maximium iterations") -x
+complete -c top -s u -d (_ "Monitor effective UID") -x -a "(__fish_complete_users)"
+complete -c top -s U -d (_ "Monitor user") -x -a "(__fish_complete_users)"
+complete -c top -s p -d (_ "Monitor PID") -x -a "(__fish_complete_pids)"
+complete -c top -s s -d (_ "Secure mode")
+complete -c top -s S -d (_ "Cumulative mode")
+complete -c top -s v -d (_ "Display version and exit")
+
diff --git a/share/completions/touch.fish b/share/completions/touch.fish
new file mode 100644
index 00000000..423730fd
--- /dev/null
+++ b/share/completions/touch.fish
@@ -0,0 +1,11 @@
+complete -c touch -s a -d (_ "Change access time")
+complete -c touch -s B -l backward -x -d (_ "Set date back")
+complete -c touch -s c -l no-create -d (_ "Do not create file")
+complete -c touch -s d -l date -x -d (_ "Set date")
+complete -c touch -s f -l forward -x -d (_ "Set date forward")
+complete -c touch -s m -d (_ "Change modification time")
+complete -c touch -s r -l reference -d (_ "Use this files times")
+complete -c touch -s t -d (_ "Set date")
+complete -c touch -l time -x -d (_ "Set time")
+complete -c touch -l help -d (_ "Display help and exit")
+complete -c touch -l version -d (_ "Display version and exit")
diff --git a/share/completions/trap.fish b/share/completions/trap.fish
new file mode 100644
index 00000000..5cdd0a5f
--- /dev/null
+++ b/share/completions/trap.fish
@@ -0,0 +1,4 @@
+
+complete -c trap -s l -l list-signals -d (_ 'Display names of all signals')
+complete -c trap -s p -l print -d (_ 'Display all currently defined trap handlers')
+complete -c trap -s h -l help -d (_ 'Display help and exit')
diff --git a/share/completions/type.fish b/share/completions/type.fish
new file mode 100644
index 00000000..afd99f95
--- /dev/null
+++ b/share/completions/type.fish
@@ -0,0 +1,12 @@
+
+complete -c type -s h -l help -d (_ "Display help and exit")
+complete -c type -s a -l all -d (_ "Print all possible definitions of the specified name")
+complete -c type -s f -l no-functions -d (_ "Supress function and builtin lookup")
+complete -c type -s t -l type -d (_ "Print command type")
+complete -c type -s p -l path -d (_ "Print path to command, or nothing if name is not a command")
+complete -c type -s P -l force-path -d (_ "Print path to command")
+
+complete -c type -a "(builtin -n)" -d (_ "Builtin")
+complete -c type -a "(functions -n)" -d (_ "Function")
+complete -c type -a "(__fish_complete_command)" -d (_ "Command")
+
diff --git a/share/completions/ulimit.fish b/share/completions/ulimit.fish
new file mode 100644
index 00000000..e5055818
--- /dev/null
+++ b/share/completions/ulimit.fish
@@ -0,0 +1,13 @@
+
+complete -c ulimit -s a -l all -d (_ "Set or get all current limits")
+complete -c ulimit -s c -l core-size -d (_ "Maximum size of core files created")
+complete -c ulimit -s d -l data-size -d (_ "Maximum size of a process's data segment")
+complete -c ulimit -s f -l file-size -d (_ "Maximum size of files created by the shell")
+complete -c ulimit -s l -l lock-size -d (_ "Maximum size that may be locked into memory")
+complete -c ulimit -s m -l resident-set-size -d (_ "Maximum resident set size")
+complete -c ulimit -s n -l file-descriptor-count -d (_ "Maximum number of open file descriptors")
+complete -c ulimit -s s -l stack-size -d (_ "Maximum stack size")
+complete -c ulimit -s t -l cpu-time -d (_ "Maximum amount of cpu time in seconds")
+complete -c ulimit -s u -l process-count -d (_ "Maximum number of processes available to a single user")
+complete -c ulimit -s v -l virtual-memory-size -d (_ "Maximum amount of virtual memory available to the shell")
+complete -c ulimit -s h -l help -d (_ "Display help and exit")
diff --git a/share/completions/umount.fish b/share/completions/umount.fish
new file mode 100644
index 00000000..d69e7563
--- /dev/null
+++ b/share/completions/umount.fish
@@ -0,0 +1,22 @@
+#
+# Completions for the umount command
+#
+
+#
+# Find all mountpoints
+#
+complete -c umount -d (_ "Mount point") -x -a '(cat /etc/mtab | cut -d " " -f 1-2|tr " " \n|sed -e "s/[0-9\.]*:\//\//"|grep "^/")'
+
+complete -c umount -s V -d (_ "Display version and exit")
+complete -c umount -s h -d (_ "Display help and exit")
+complete -c umount -s v -d (_ "Verbose mode")
+complete -c umount -s n -d (_ "Unmount without writing in /etc/mtab")
+complete -c umount -s r -d (_ "In case unmounting fails, try to remount read-only")
+complete -c umount -s d -d (_ "In case the unmounted device was a loop device, also free this loop device")
+complete -c umount -s i -d (_ "Don't call the /sbin/umount.<filesystem> helper even if it exists")
+complete -c umount -s a -d (_ "Unmount all of the file systems described in /etc/mtab")
+complete -c umount -s t -d (_ "Actions should only be taken on file systems of the specified type") -xa "(__fish_print_filesystems)"
+complete -c umount -s O -d (_ "Actions should only be taken on file systems with the specified options in /etc/fstab") -xa '(cat /etc/mtab | cut -d " " -f 4)\t"Mount option"'
+complete -c umount -s f -d (_ "Force unmount (in case of an unreachable NFS system)")
+complete -c umount -s l -d (_ "Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it is not busy")
+
diff --git a/share/completions/uname.fish b/share/completions/uname.fish
new file mode 100644
index 00000000..d9cb2462
--- /dev/null
+++ b/share/completions/uname.fish
@@ -0,0 +1,11 @@
+complete -c uname -s a -l all -d (_ "Print all information")
+complete -c uname -s s -l kernel-name -d (_ "Print kernel name")
+complete -c uname -s n -l nodename -d (_ "Print network node hostname")
+complete -c uname -s r -l kernel-release -d (_ "Print kernel release")
+complete -c uname -s v -l kernel-version -d (_ "Print kernel version")
+complete -c uname -s m -l machine -d (_ "Print machine name")
+complete -c uname -s p -l processor -d (_ "Print processor")
+complete -c uname -s i -l hardware-platform -d (_ "Print hardware platform")
+complete -c uname -s o -l operating-system -d (_ "Print operating system")
+complete -c uname -l help -d (_ "Display help and exit")
+complete -c uname -l verion -d (_ "Display version and exit")
diff --git a/share/completions/uniq.fish b/share/completions/uniq.fish
new file mode 100644
index 00000000..fc218e06
--- /dev/null
+++ b/share/completions/uniq.fish
@@ -0,0 +1,15 @@
+complete -c uniq -s c -l count -d (_ "Print number of occurences")
+complete -c uniq -s d -l repeated -d (_ "Only print duplicates")
+complete -c uniq -s D -l all-repeated -d (_ "Remove non-duplicate lines") -f -x -a "
+ none\t'Remove none-duplicate lines'
+ prepend\t'Remove non-duplicate lines and print an empty line before each non-duplicate'
+ separate\t'Remove non-duplicate lines and print an empty line between each non-duplicate'
+"
+complete -c uniq -s f -l skip-fields -d (_ "Avoid comparing first N fields") -r
+complete -c uniq -s i -l ignore-case -d (_ "Case insensitive")
+complete -c uniq -s s -l skip-chars -d (_ "Avoid comparing first N characters") -r
+complete -c uniq -s u -l unique -d (_ "Only print unique lines")
+complete -c uniq -s w -l check-chars -d (_ "Compare only specified number of characters") -r
+complete -c uniq -l help -d (_ "Display help and exit")
+complete -c uniq -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/valgrind.fish b/share/completions/valgrind.fish
new file mode 100644
index 00000000..aa4317bf
--- /dev/null
+++ b/share/completions/valgrind.fish
@@ -0,0 +1,74 @@
+
+if valgrind --version | grep -- '-2\.[012]\.' >/dev/null ^/dev/null
+ # In older versions of Valgrind, the skin selection option was
+ # '--skin'
+ set -g skin skin
+else
+ # But someone decided that it would be fun to change this to
+ # '--tool' for no good reason
+ set -g skin tool
+end
+
+complete -xc valgrind -l $skin -d (_ "Skin") -a "
+ memcheck\tHeavyweight\ memory\ checker
+ cachegrind\tCache-miss\ profiler
+ addrcheck\tLightweight\ memory\ checker
+ helgrind\tData-race\ detector
+ massif\tHeap\ profiler
+"
+
+eval function __fish_valgrind_skin\; contains -- --$skin=\$argv \(commandline -cpo\)\;end
+
+set -e $skin
+
+complete -c valgrind -l help -d (_ "Display help and exit")
+complete -c valgrind -l help-debug -d (_ "Display help and debug options")
+complete -c valgrind -l version -d (_ "Display version and exit")
+complete -c valgrind -s q -l quiet -d (_ "Quiet mode")
+complete -c valgrind -s v -l verbose -d (_ "Verbose mode")
+complete -xc valgrind -l trace-children -d (_ "Valgrind-ise children") -a "yes no"
+complete -xc valgrind -l track-fds -d (_ "Track file descriptors") -a "yes no"
+complete -xc valgrind -l logfile-fd -d (_ "Log to file descriptor") -a "0 1 2 3 4 5 6 7 8 9"
+complete -rc valgrind -l logfile -d (_ "Log to file")
+complete -xc valgrind -l logsocket -d (_ "Log to socket")
+complete -c valgrind -l demangle -xd "Demangle C++ names" -a "yes no"
+complete -xc valgrind -l num-callers -d (_ "Callers in stack trace")
+complete -xc valgrind -l error-limit -d (_ "Stop showing errors if too many") -a "yes no"
+complete -xc valgrind -l show-below-main -d (_ "Continue trace below main()") -a "yes no"
+complete -rc valgrind -l supressions -d (_ "Supress errors from file")
+complete -c valgrind -l gen-supressions -d (_ "Print suppressions for detected errors")
+complete -xc valgrind -l db-attach -d (_ "Start debugger on error") -a "yes no"
+complete -rc valgrind -l db-command -d (_ "Debugger command")
+complete -xc valgrind -l input-fd -d (_ "File descriptor for input") -a "0 1 2 3 4 5 6 7 8 9"
+
+
+# Memcheck-specific options
+complete -n "__fish_valgrind_skin memcheck" -xc valgrind -l leak-check -d (_ "Check for memory leaks") -a "no\tDon't\ check\ for\ memory\ leaks summary\t'Show a leak summary' full\t'Describe memory leaks in detail'"
+complete -n "__fish_valgrind_skin memcheck" -xc valgrind -l show-reachable -d (_ "Show reachable leaked memory") -a "yes\t'Show reachable leaked memory' no\t'Do not show reachable leaked memory'"
+complete -n "__fish_valgrind_skin memcheck" -xc valgrind -l leak-resolution -d (_ "Determines how willing Memcheck is to consider different backtraces to be the same") -a "low\t'Two entries need to match' med\t'Four entries need to match' high\t'All entries need to match'"
+complete -n "__fish_valgrind_skin memcheck" -xc valgrind -l freelist-vol -d (_ "Set size of freed memory pool")
+complete -n "__fish_valgrind_skin memcheck" -xc valgrind -l partial-loads-ok -d 'How to handle loads of words that are partially addressible' -a 'yes\t"Do not emit errors on partial loads" no\t"Emit errors on partial loads"'
+complete -n "__fish_valgrind_skin memcheck" -xc valgrind -l avoid-strlen-errors -d 'Whether to skip error reporting for the strlen function' -a 'yes no'
+
+
+# Addrcheck-specific options
+complete -n "__fish_valgrind_skin addrcheck" -xc valgrind -l leak-check -d (_ "Check for memory leaks") -a "no\t'Do not check for memory leaks' summary\t'Show a leak summary' full\t'Describe memory leaks in detail'"
+complete -n "__fish_valgrind_skin addrcheck" -xc valgrind -l show-reachable -d (_ "Show reachable leaked memory") -a "yes\t'Show reachable leaked memory' no\t'Do not show reachable leaked memory'"
+complete -n "__fish_valgrind_skin addrcheck" -xc valgrind -l leak-resolution -d (_ "Determines how willing Addrcheck is to consider different backtraces to be the same") -a "low\t'Two entries need to match' med\t'Four entries need to match' high\t'All entries need to match'"
+complete -n "__fish_valgrind_skin addrcheck" -xc valgrind -l freelist-vol -d (_ "Set size of freed memory pool")
+complete -n "__fish_valgrind_skin addrcheck" -xc valgrind -l partial-loads-ok -d 'How to handle loads of words that are partially addressible' -a 'yes\t"Do not emit errors on partial loads" no\t"Emit errors on partial loads"'
+complete -n "__fish_valgrind_skin addrcheck" -xc valgrind -l avoid-strlen-errors -d 'Whether to skip error reporting for the strlen function' -a 'yes no'
+
+# Cachegrind-specific options
+complete -n "__fish_valgrind_skin cachegrind" -xc valgrind -l I1 -d (_ "Type of L1 instruction cache")
+complete -n "__fish_valgrind_skin cachegrind" -xc valgrind -l D1 -d (_ "Type of L1 data cache")
+complete -n "__fish_valgrind_skin cachegrind" -xc valgrind -l L2 -d (_ "Type of L2 cache")
+
+
+# Massif-specific options
+complete -c valgrind -n "__fish_valgrind_skin massif" -l alloc-fn -d (_ "Specify a function that allocates memory") -x
+complete -c valgrind -n "__fish_valgrind_skin massif" -x -l heap -d 'Profile heap usage' -a 'yes\t"Profile heap usage" no\t"Do not profile heap usage"'
+complete -c valgrind -n "__fish_valgrind_skin massif" -x -l heap-admin -d (_ "The number of bytes of heap overhead per allocation")
+complete -c valgrind -n "__fish_valgrind_skin massif" -x -l stacks -d (_ "Profile stack usage") -a 'yes\t"Profile stack usage" no\t"Do not profile stack usage"'
+complete -c valgrind -n "__fish_valgrind_skin massif" -x -l depth -d (_ "Depth of call chain")
+complete -c valgrind -n "__fish_valgrind_skin massif" -x -l format -d (_ "Profiling output format") -a "html\t'Produce html output' text\t'Produce text output'"
diff --git a/share/completions/vared.fish b/share/completions/vared.fish
new file mode 100644
index 00000000..02210082
--- /dev/null
+++ b/share/completions/vared.fish
@@ -0,0 +1,3 @@
+complete -c vared -x -a "(set|sed -e 's/ /\tVariable: /')"
+complete -c vared -s h -l help -d (_ "Display help and exit")
+
diff --git a/share/completions/w.fish b/share/completions/w.fish
new file mode 100644
index 00000000..f53bcbd7
--- /dev/null
+++ b/share/completions/w.fish
@@ -0,0 +1,6 @@
+complete -c w -s h -d (_ "Dont print header")
+complete -c w -s u -d (_ "Ignore username for time calculations")
+complete -c w -s s -d (_ "Short format")
+complete -c w -s f -d (_ "Toggle printing of remote hostname")
+complete -c w -s V -d (_ "Display version and exit")
+complete -c w -x -a "(__fish_complete_users)" -d (_ "Username")
diff --git a/share/completions/wc.fish b/share/completions/wc.fish
new file mode 100644
index 00000000..f4e5c1e6
--- /dev/null
+++ b/share/completions/wc.fish
@@ -0,0 +1,7 @@
+complete -c wc -s c -l bytes -d (_ "Print byte counts")
+complete -c wc -s m -l chars -d (_ "Print character counts")
+complete -c wc -s l -l lines -d (_ "Print newline counts")
+complete -c wc -s L -l max-line-length -d (_ "Print length of longest line")
+complete -c wc -s w -l words -d (_ "Print word counts")
+complete -c wc -l help -d (_ "Display help and exit")
+complete -c wc -l version -d (_ "Display version and exit")
diff --git a/share/completions/wget.fish b/share/completions/wget.fish
new file mode 100644
index 00000000..7b026fc6
--- /dev/null
+++ b/share/completions/wget.fish
@@ -0,0 +1,113 @@
+#
+# Completions for the wget command
+#
+
+complete -c wget -s V -l version -d (_ "Display version and exit")
+complete -c wget -s h -l help -d (_ "Display help and exit")
+complete -c wget -s b -l background -d (_ "Go to background immediately after startup")
+complete -c wget -s e -l execute -d (_ "Execute command as if part of .wgetrc") -x
+complete -c wget -s o -l output-file -d (_ "Log all messages to logfile") -r
+complete -c wget -s a -l append-output -d (_ "Append all messages to logfile")
+complete -c wget -s d -l debug -d (_ "Turn on debug output")
+complete -c wget -s q -l quiet -d (_ "Quiet mode")
+complete -c wget -s v -l verbose -d (_ "Verbose mode")
+complete -c wget -l non-verbose -d (_ "Turn off verbose without being completely quiet")
+complete -c wget -o nv -d (_ "Turn off verbose without being completely quiet")
+complete -c wget -s i -l input-file -d (_ "Read URLs from file") -r
+complete -c wget -s F -l force-html -d (_ "Force input to be treated as HTML")
+complete -c wget -s B -l base -d (_ "Prepend string to relative links") -x
+complete -c wget -l bind-adress -d (_ "Bind address on local machine") -xa "(__fish_print_addresses; __fish_print_hostnames)"
+complete -c wget -s t -l tries -d (_ "Set number of retries to number") -xa "0 1 2 4 8 16 32 64 128"
+complete -c wget -s O -l output-document -d (_ "Concatenate output to file") -r
+complete -c wget -l no-clobber -d (_ "Never overwrite files with same name")
+complete -c wget -o nc -d (_ "Never overwrite files with same name")
+complete -c wget -s c -l continue -d (_ "Continue getting a partially-downloaded file")
+complete -c wget -l progress -d (_ "Select progress meter type") -a "
+ dot\t'Print one dot for every kB of data, 50 dots per line'
+ dot:default\t'Print one dot for every kB of data, 50 dots per line'
+ dot:binary\t'Print one dot for every 8 kB of data, 48 dots per line'
+ dot:mega\t'Print one dot for every 64 kB of data, 48 dots per line'
+ bar\t'Print progress bar'
+"
+complete -c wget -s N -l timestamping -d (_ "Turn on time-stamping")
+complete -c wget -s S -l server-response -d (_ "Print the headers/responses sent by servers")
+complete -c wget -l spider -d (_ "Do not download the pages, just check that they are there")
+complete -c wget -s T -l timeout -d (_ "Set the network timeout") -x
+complete -c wget -l dns-timeout -d (_ "Set the DNS lookup timeout") -x
+complete -c wget -l connect-timeout -d (_ "Set the connect timeout") -x
+complete -c wget -l read-timeout -d (_ "Set the read (and write) timeout") -x
+complete -c wget -l limit-rate -d (_ "Limit the download speed") -x
+complete -c wget -s w -l wait -d (_ "Wait the specified number of seconds between the retrievals") -x
+complete -c wget -l waitretry -d (_ "Wait time between retries") -x
+complete -c wget -l random-wait -d (_ "Wait random amount of time between retrievals")
+complete -c wget -s Y -l proxy -d (_ "Toggle proxy support") -xa "on off"
+complete -c wget -s Q -l quota -d (_ "Specify download quota for automatic retrievals") -x
+complete -c wget -l dns-cache -d (_ "Turn off caching of DNS lookups") -xa "off"
+complete -c wget -l restrict-file-names -d (_ "Change which characters found in remote URLs may show up in local file names") -a "
+ unix\t'Escape slash and non-printing characters'
+ windows\t'Escape most non-alphabetical characters'
+"
+
+# HTTP options
+
+complete -c wget -l no-directories -d (_ "Do not create a hierarchy of directories")
+complete -c wget -o nd -d (_ "Do not create a hierarchy of directories")
+complete -c wget -s x -l force-directories -d (_ "Force creation of a hierarchy of directories")
+complete -c wget -l no-host-directories -d (_ "Disable generation of host-prefixed directories")
+complete -c wget -o nH -d (_ "Disable generation of host-prefixed directories")
+complete -c wget -l protocal-directories -d (_ "Use the protocol name as a directory component")
+complete -c wget -l cut-dirs -d (_ "Ignore specified number of directory components") -xa "1 2 3 4 5"
+complete -c wget -s P -l directory-prefix -d (_ "Set directory prefix") -r
+complete -c wget -s E -l html-extension -d (_ "Force html files to have html extension")
+complete -c wget -l http-user -d (_ "Specify the http username") -xa "(__fish_complete_users)"
+complete -c wget -l http-passwd -d (_ "Specify the http password") -x
+complete -c wget -l no-cache -d (_ "Disable server-side cache")
+complete -c wget -l no-cookies -d (_ "Disable the use of cookies")
+complete -c wget -l load-cookies -d (_ "Load cookies from file") -r
+complete -c wget -l save-cookies -d (_ "Save cookies to file")
+complete -c wget -l keep-session-cookies -d (_ "Save session cookies")
+complete -c wget -l ignore-length -d (_ "Ignore 'Content-Length' header")
+complete -c wget -l header -d (_ "Define an additional-header to be passed to the HTTP servers") -x
+complete -c wget -l proxy-user -d (_ "Specify the proxy username") -xa "(__fish_complete_users)"
+complete -c wget -l proxy-password -d (_ "Specify the proxy password") -x
+complete -c wget -l referer -d (_ "Set referer URL") -x
+complete -c wget -l save-headers -d (_ "Save the headers sent by the HTTP server")
+complete -c wget -s U -l user-agent -d (_ "Identify as agent-string") -x
+complete -c wget -l post-data -d (_ "Use POST as the method for all HTTP requests and send the specified data in the request body") -x
+complete -c wget -l post-file -d (_ "Use POST as the method for all HTTP requests and send the specified data in the request body") -r
+complete -c wget -l no-http-keep-alive -d (_ "Turn off keep-alive for http downloads")
+
+#FTP options
+
+complete -c wget -l no-remove-listing -d (_ "Don't remove the temporary .listing files generated")
+complete -c wget -l no-glob -d (_ "Turn off FTP globbing")
+complete -c wget -l passive-ftp -d (_ "Use the passive FTP retrieval scheme")
+complete -c wget -l retr-symlinks -d (_ "Traverse symlinks and retrieve pointed-to files")
+
+# Recursive options
+
+complete -c wget -s r -l recursive -d (_ "Turn on recursive retrieving")
+complete -c wget -n '__fish_contains_opt -s r recursive' -s l -l level -d (_ "Specify recursion maximum depth") -x
+complete -c wget -l delete-after -d (_ "Delete every single file downloaded")
+complete -c wget -s k -l convert-links -d (_ "Convert the links in the document to make them suitable for local viewing")
+complete -c wget -s K -l backup-converted -d (_ "Back up the original version")
+complete -c wget -s m -l mirror -d (_ "Turn on options suitable for mirroring")
+complete -c wget -s p -l page-requisites -d (_ "Download all the files that are necessary to properly display a given HTML page")
+complete -c wget -l strict-comments -d (_ "Turn on strict parsing of HTML comments")
+
+#Recursive accept/reject options
+
+complete -c wget -s A -l accept -d (_ "Comma-separated lists of file name suffixes or patterns to accept") -x
+complete -c wget -s R -l reject -d (_ "Comma-separated lists of file name suffixes or patterns to reject") -x
+complete -c wget -s D -l domains -d (_ "Set domains to be followed") -x
+complete -c wget -l exclude-domains -d (_ "Specify the domains that are not to be followed") -x
+complete -c wget -l follow-ftp -d (_ "Follow FTP links from HTML documents")
+complete -c wget -l follow-tags -d (_ "HTML tags to follow") -x
+complete -c wget -l ignore-tags -d (_ "HTML tags to ignore") -x
+complete -c wget -s H -l span-hosts -d (_ "Enable spanning across hosts")
+complete -c wget -s L -l relative -d (_ "Follow relative links only")
+complete -c wget -s I -l include-directories -d (_ "Specify a comma-separated list of directories you wish to follow") -x
+complete -c wget -s X -l exclude-directories -d (_ "Specify a comma-separated list of directories you wish to exclude") -x
+complete -c wget -l no-parent -d (_ "Do not ever ascend to the parent directory")
+complete -c wget -o np -d (_ "Do not ever ascend to the parent directory")
+
diff --git a/share/completions/whatis.fish b/share/completions/whatis.fish
new file mode 100644
index 00000000..eda161e3
--- /dev/null
+++ b/share/completions/whatis.fish
@@ -0,0 +1,2 @@
+
+complete -xc whatis -a "(__fish_complete_man)"
diff --git a/share/completions/who.fish b/share/completions/who.fish
new file mode 100644
index 00000000..fa5020e8
--- /dev/null
+++ b/share/completions/who.fish
@@ -0,0 +1,20 @@
+complete -c who -s a -l all -d (_ "Same as -b -d --login -p -r -t -T -u")
+complete -c who -s b -l boot -d (_ "Print time of last boot")
+complete -c who -s d -l dead -d (_ "Print dead processes")
+complete -c who -s H -l heading -d (_ "Print line of headings")
+complete -c who -s i -l idle -d (_ "Print idle time")
+complete -c who -s l -l login -d (_ "Print login process")
+complete -c who -l lookup -d (_ "Canonicalize hostnames via DNS")
+complete -c who -s m -d (_ "Print hostname and user for stdin")
+complete -c who -s p -l process -d (_ "Print active processes spawned by init")
+complete -c who -s q -l count -d (_ "Print all login names and number of users logged on")
+complete -c who -s r -l runlevel -d (_ "Print current runlevel")
+complete -c who -s s -l short -d (_ "Print name, line, and time")
+complete -c who -s t -l time -d (_ "Print last system clock change")
+complete -c who -s T -l mesg -d (_ "Print users message status as +, - or ?")
+complete -c who -s w -l writable -d (_ "Print users message status as +, - or ?")
+complete -c who -l message -d (_ "Print users message status as +, - or ?")
+complete -c who -s u -l users -d (_ "List users logged in")
+complete -c who -l help -d (_ "Display help and exit")
+complete -c who -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/xprop.fish b/share/completions/xprop.fish
new file mode 100644
index 00000000..cdef3022
--- /dev/null
+++ b/share/completions/xprop.fish
@@ -0,0 +1,32 @@
+
+complete -c xprop -o help -d (_ "Display help and exit")
+complete -c xprop -o grammar -d (_ "Display grammar and exit")
+complete -c xprop -o id -x -d (_ "Select window by id")
+complete -c xprop -o name -d (_ "Select window by name")
+complete -c xprop -o font -x -d (_ "Display font properties")
+complete -c xprop -o root -d (_ "Select root window")
+complete -c xprop -o display -d (_ "Specify X server")
+complete -c xprop -o len -x -d (_ "Maximum display length")
+complete -c xprop -o notype -d (_ "Do not show property type")
+complete -c xprop -o fs -r -d (_ "Set format file")
+complete -c xprop -o frame -d (_ "Select a window by clicking on its frame" )
+complete -c xprop -o remove -d (_ "Remove property") -x -a "
+(
+ xprop -root -notype|cut -d ' ' -f 1|cut -d \t -f 1
+)
+"
+
+complete -c xprop -o set -d (_ "Set property") -x -a "
+(
+ xprop -root -notype|cut -d ' ' -f 1|cut -d \t -f 1
+)
+"
+
+complete -c xprop -o spy -d (_ "Examine property updates forever")
+complete -c xprop -o f -d (_ "Set format")
+complete -c xprop -d Property -x -a "
+(
+ xprop -root -notype|cut -d ' ' -f 1|cut -d \t -f 1
+)
+"
+
diff --git a/share/completions/xsel.fish b/share/completions/xsel.fish
new file mode 100644
index 00000000..acdca663
--- /dev/null
+++ b/share/completions/xsel.fish
@@ -0,0 +1,18 @@
+complete -c xsel -s a -l append -d (_ "Append input to selection")
+complete -c xsel -s f -l follow -d (_ "Append to selection as input grows")
+complete -c xsel -s i -l input -d (_ "Read into selection")
+complete -c xsel -s o -l output -d (_ "Write selection")
+complete -c xsel -s c -l clear -d (_ "Clear selection")
+complete -c xsel -s d -l delete -d (_ "Delete selection")
+complete -c xsel -s p -l primary -d (_ "Use primary selection")
+complete -c xsel -s s -l secondary -d (_ "Use secondary selection")
+complete -c xsel -s b -l clipboard -d (_ "Use clipboard selection")
+complete -c xsel -s k -l keep -d (_ "Make current selections persistent after program exit")
+complete -c xsel -s x -l exchange -d (_ "Exchange primary and secondary selections")
+complete -c xsel -l display -x -d (_ "X server display")
+complete -c xsel -s t -l selectionTimeout -d (_ "Timeout for retrieving selection")
+complete -c xsel -s l -l logfile -f -d (_ "Error log")
+complete -c xsel -s n -l nodetach -d (_ "Do not detach from the controlling terminal")
+complete -c xsel -s h -l help -d (_ "Display help and exit")
+complete -c xsel -s v -l verbose -d (_ "Print informative messages")
+complete -c xsel -l version -d (_ "Display version and exit")
diff --git a/share/completions/yum.fish b/share/completions/yum.fish
new file mode 100644
index 00000000..3b44d288
--- /dev/null
+++ b/share/completions/yum.fish
@@ -0,0 +1,75 @@
+#
+# Completions for the yum command
+#
+
+#All yum commands
+
+#Test if the yum command has been specified
+function __fish_yum_has_command
+ set modes install update check-update upgrade remove erase list provides whatprovides search info clean generate-rss
+ for i in (commandline -poc);
+ if contains $i $modes
+ return 1
+ end
+ end
+ return 0;
+end
+
+#Test if completing using package names is appropriate
+function __fish_yum_package_ok
+ for i in (commandline -poc)
+ if contains $i update upgrade remove erase
+ return 0
+ end
+ end
+ return 1
+end
+
+complete -c yum -n '__fish_yum_has_command' -xa "
+ install\t'Install the latest version of a package'
+ update\t'Update specified packages (defaults to all packages)'
+ check-update\t'Print list of available updates'
+ upgrade\t'Update specified packages including obsoletes (defaults to all packages)'
+ remove\t'remove the specified packages and packages that depend on them'
+ erase\t'remove the specified packages and packages that depend on them'
+ list\t'List information about avaialble packages'
+ provides\t'Find package providing a feature or file'
+ whatprovides\t'Find package providing a feature or file'
+ search\t'find packages matching description regexp'
+ info\t'List information about available packages'
+ clean\t'Clean up cache directory'
+ generate-rss\t'Generate rss changelog'
+"
+
+complete -c yum -n '__fish_yum_package_ok' -a "(__fish_print_packages)"
+
+complete -c yum -s h -l help -d (_ "Display help and exit")
+complete -c yum -s y -d (_ "Assume yes to all questions")
+complete -c yum -s c -d (_ "Configuration file") -r
+complete -c yum -s d -d (_ "Set debug level") -x
+complete -c yum -s e -d (_ "Set error level") -x
+complete -c yum -s t -l tolerant -d (_ "Be tolerant of errors in commandline")
+complete -c yum -s R -d (_ "Set maximum delay between commands") -x
+complete -c yum -s c -d (_ "Run commands from cache")
+complete -c yum -l version -d (_ "Display version and exit")
+complete -c yum -l installroot -d (_ "Specify installroot") -r
+complete -c yum -l enablerepo -d (_ "Enable repository") -r
+complete -c yum -l disablerepo -d (_ "Disable repository") -r
+complete -c yum -l obsoletes -d (_ "Enables obsolets processing logic")
+complete -c yum -l rss-filename -d (_ "Output rss-data to file") -r
+complete -c yum -l exclude -d (_ "Exclude specified package from updates") -a "(__fish_print_packages)"
+
+complete -c yum -n 'contains list (commandline -poc)' -a "
+ all\t'List all packages'
+ available\t'List packages available for installation'
+ updates\t'List packages with updates available'
+ installed\t'List installed packages'
+ extras\t'List packages not available in repositories'
+ obsoletes\t'List packages that are obsoleted by packages in repositories'
+"
+
+complete -c yum -n 'contains clean (commandline -poc)' -x -a "
+ packages\t'Delete cached package files'
+ headers\t'Delete cached header files'
+ all\t'Delete all cache contents'
+"
diff --git a/share/completions/zcat.fish b/share/completions/zcat.fish
new file mode 100644
index 00000000..ef0923d3
--- /dev/null
+++ b/share/completions/zcat.fish
@@ -0,0 +1,10 @@
+complete -c zcat -x -a "(
+ __fish_complete_suffix (commandline -ct) .gz 'Compressed file'
+ __fish_complete_suffix (commandline -ct) .tgz 'Compressed archive'
+)
+"
+complete -c zcat -s f -l force -d (_ "Overwrite")
+complete -c zcat -s h -l help -d (_ "Display help and exit")
+complete -c zcat -s L -l license -d (_ "Print license")
+complete -c zcat -s V -l version -d (_ "Display version and exit")
+
diff --git a/share/completions/zip.fish b/share/completions/zip.fish
new file mode 100644
index 00000000..9af815cf
--- /dev/null
+++ b/share/completions/zip.fish
@@ -0,0 +1,32 @@
+# Completions for zip
+complete -c zip -s f -d (_ "Freshen: only changed files")
+complete -c zip -s d -d (_ "Delete entries in zipfile")
+complete -c zip -s u -d (_ "Update: only changed or newer files")
+complete -c zip -s m -d (_ "Move into zipfile (delete files)")
+complete -c zip -s r -d (_ "Operate recursively")
+complete -c zip -s j -d (_ "Do not store directory names")
+complete -c zip -s 0 -d (_ "Do not compress at all")
+complete -c zip -s l -d (_ "Convert LF to CR LF")
+complete -c zip -o ll -d (_ "Convert CR LF to LF")
+complete -c zip -s 1 -d (_ "Compress faster")
+complete -c zip -s 9 -d (_ "Compress better")
+complete -c zip -s q -d (_ "Quiet mode")
+complete -c zip -s v -d (_ "Verbose mode")
+complete -c zip -s c -d (_ "Add one-line comments")
+complete -c zip -s z -d (_ "Add zipfile comments")
+complete -c zip -s @ -d (_ "Read names from stdin")
+complete -c zip -s o -d (_ "Make zipfile as old as the latest entry")
+complete -c zip -s x -r -d (_ "Exclude the following names")
+complete -c zip -s i -r -d (_ "Include only the following names")
+complete -c zip -s F -d (_ "Fix zipfile")
+complete -c zip -o FF -d (_ "Fix zipfile (try harder)")
+complete -c zip -s A -d (_ "Adjust offsets to suit self-extracting exe")
+complete -c zip -s J -d (_ "Strip prepended data")
+complete -c zip -s T -d (_ "Test zipfile integrity")
+complete -c zip -s X -d (_ "Exclude extra file attributes")
+complete -c zip -s y -d (_ "Store symbolic links as links")
+complete -c zip -s R -d (_ "PKZIP recursion")
+complete -c zip -s e -d (_ "Encrypt")
+complete -c zip -s n -r -d (_ "Don\'t compress files with these suffixes")
+complete -c zip -s h -d (_ "Display help and exit")
+