aboutsummaryrefslogtreecommitdiffhomepage
path: root/share
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2013-02-01 17:11:22 -0800
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2013-02-01 17:11:22 -0800
commitff7cbab991732fea3c6c744bf6439f797e0c307c (patch)
tree783bfad812dedd91d5721d63185ac61a91c54d8f /share
parentad8d68dd4390753901b5e1dae4b4c4b44be7fcea (diff)
Add man function to promote fish's man pages so it can serve as a suitable replacement for help
Diffstat (limited to 'share')
-rw-r--r--share/functions/man.fish21
1 files changed, 21 insertions, 0 deletions
diff --git a/share/functions/man.fish b/share/functions/man.fish
new file mode 100644
index 00000000..4664a804
--- /dev/null
+++ b/share/functions/man.fish
@@ -0,0 +1,21 @@
+function man --description "Format and display the on-line manual pages"
+ # Work around OS X's "builtin" manpage that everything symlinks to,
+ # by prepending our fish datadir to man. This also ensures that man gives fish's
+ # man pages priority, without having to put fish's bin directories first in $PATH
+ # Temporarily set a MANPATH, unless one is set already
+ if not set -q MANPATH
+ set -l fish_manpath (dirname $__fish_datadir)/fish/man
+ if test -d "$fish_manpath"
+ # Notice local but exported variable
+ set -lx MANPATH "$fish_manpath":(command man --path)
+
+ # Invoke man with this manpath, and we're done
+ command man $argv
+ return
+ end
+ end
+
+ # If MANPATH is set explicitly, or fish's man pages could not be found,
+ # just invoke man normally
+ command man $argv
+end