-
-
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 }; _' |
Thanks for this solution!
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.
$> PA1="$(brew --prefix coreutil)/libexec/" ;
$> : ; # expand slashes (for sed use)
$> BINPA ="${PA1//\//\\/}gnubin" ;
$> MANPA ="${PA1//\//\\/}gnuman" ;
$> : ; # put as first line
$> sudo sed -i'' -e '1s/^/'"${BINPA}"'\n/' /etc/paths ;
$> sudo sed -i'' -e '1s/^/'"${MANPA}"'\n/' /etc/manpaths ;
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
Follow an article like this describing how to use Homebrew to setup GNU coreutils et al on your Mac.
Then when you want to spend less than a minute getting the manpages to work with both your new GNU programs and your Mac programs you still want to be able to use (like
mdfind
), paste this gist in your~/.profile
and away you go!