-
-
Save quickshiftin/9130153 to your computer and use it in GitHub Desktop.
# Short of learning how to actually configure OSX, here's a hacky way to use | |
# GNU manpages for programs that are GNU ones, and fallback to OSX manpages otherwise | |
alias man='_() { echo $1; man -M $(brew --prefix)/opt/coreutils/libexec/gnuman $1 1>/dev/null 2>&1; if [ "$?" -eq 0 ]; then man -M $(brew --prefix)/opt/coreutils/libexec/gnuman $1; else man $1; fi }; _' |
This solution makes the [section] argument for man
fail to work.
e.g:
man 2 read
can not find the man page for read
in section 2.
Not one to settle for hacky work-arounds, I did a bit of googling and eventually found this solution to work for adding the gnu manpages:
- Open the file
/etc/man.conf
- Add a line:
MANPATH_MAP /usr/local/opt/coreutils/libexec/gnubin /usr/local/opt/coreutils/libexec/gnuman
Hope that helps!
@JacobDorman Do you use oh-my-zsh or prezto? There is an alias for sudo(!) which causes this failure. So try to comment out the line alias _='sudo'
or add a line with unalias _
before the man alias.
The alias is not working with bash.
@tasmo Ahh so there is. I never use that. unalias _
fixes the issue.
What's wrong with just putting /usr/local/opt/coreutils/libexec/gnuman
at the front of $MANPATH
?
I have the same question as @OJFord. Why not just export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"
?
man section will not work, use $@
instead of $1
alias man='_() { echo $@; man -M $(brew --prefix)/opt/coreutils/libexec/gnuman $@ 1>/dev/null 2>&1; if [ "$?" -eq 0 ]; then man -M $(brew --prefix)/opt/coreutils/libexec/gnuman $@; else man $@; fi }; _'
This man hack command now not working in macOS 12.3.1 .. when i put this in my alias file and try to type man it stuck on "ma" only.. shall we have new workaround
Additionally, if one wants to make it available system-wide, one could add the lines to
/etc/paths
/etc/manpaths
Where /usr/libexec/path_helper would include them.