mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 21:31:19 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
# ------------------------------------------------------------------------------
 | 
						|
# Author
 | 
						|
# ------
 | 
						|
#
 | 
						|
# * Jerry Ling<jerryling315@gmail.com>
 | 
						|
#
 | 
						|
# ------------------------------------------------------------------------------
 | 
						|
# Usage
 | 
						|
# -----
 | 
						|
#
 | 
						|
# man will be inserted before the command
 | 
						|
#
 | 
						|
# ------------------------------------------------------------------------------
 | 
						|
 | 
						|
man-command-line() {
 | 
						|
    # if there is no command typed, use the last command
 | 
						|
    [[ -z "$BUFFER" ]] && zle up-history
 | 
						|
 | 
						|
    # 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
 | 
						|
    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
 | 
						|
# Defined shortcut keys: [Esc]man
 | 
						|
bindkey "\e"man man-command-line
 |