mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-12-12 20:21:02 +01:00
man: look for man page for subcommands (#8798)
This commit is contained in:
parent
fcd0747bc1
commit
25d0b2dfbd
1 changed files with 14 additions and 8 deletions
|
@ -16,16 +16,22 @@ man-command-line() {
|
||||||
# if there is no command typed, use the last command
|
# if there is no command typed, use the last command
|
||||||
[[ -z "$BUFFER" ]] && zle up-history
|
[[ -z "$BUFFER" ]] && zle up-history
|
||||||
|
|
||||||
# prepend man to only the first part of the typed command
|
# if typed command begins with man, do nothing
|
||||||
|
[[ "$BUFFER" = man\ * ]] && return
|
||||||
|
|
||||||
|
# get command and possible subcommand
|
||||||
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion-Flags
|
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion-Flags
|
||||||
[[ "$BUFFER" != man\ * ]] && BUFFER="man ${${(Az)BUFFER}[1]}"
|
local -a args
|
||||||
|
args=(${${(Az)BUFFER}[1]} ${${(Az)BUFFER}[2]})
|
||||||
|
|
||||||
|
# check if man page exists for command and first argument
|
||||||
|
if man "${args[1]}-${args[2]}" >/dev/null 2>&1; then
|
||||||
|
BUFFER="man $args"
|
||||||
|
else
|
||||||
|
BUFFER="man ${args[1]}"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
zle -N man-command-line
|
zle -N man-command-line
|
||||||
# Defined shortcut keys: [Esc]man
|
# Defined shortcut keys: [Esc]man
|
||||||
bindkey "\e"man man-command-line
|
bindkey "\e"man man-command-line
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# Also, you might want to use man-preview included in 'osx' plugin
|
|
||||||
# just substitute "man" in the function with "man-preview" after you included OS X in
|
|
||||||
# the .zshrc
|
|
||||||
|
|
Loading…
Reference in a new issue