Você pode vincular uma função bash a uma chave com bind -x
. Nesta função, você pode acessar o conteúdo atual do buffer de entrada por meio das variáveis READLINE_LINE
e READLINE_POINT
.
run_man () {
declare prefix="${READLINE_LINE:0:$READLINE_POINT}" suffix="${READLINE_LINE:$READLINE_POINT}"
declare word="${prefix##*[!-+.0-9A-Z_a-z]}${suffix%%[!-+.0-9A-Z_a-z]*}"
man "$word"
}
bind -m vi -x '"K": run_man'
Pode ser mais útil abrir a man page para a palavra na posição de comando do que para a palavra sob o cursor, mas isso requer uma análise mais complexa. O código de conclusão bash pode ajudar nisso. Ou você pode se contentar com a primeira palavra na linha, o que requer menos análise do que obter a palavra atual.
Para detectar bash builtins e mostrar a documentação bash em vez de uma página man, consulte comando universal help / man: ajuda com parciais parciais
P.S.
It'd be nice to be able to see man without deleting the whole command from the prompt.
Eu faço isso com frequência em zsh . Espero que seja possível no bash também, mas mais complicado de configurar.