What is a way to read man pages in vim without using temporary files

前端 未结 11 1267
萌比男神i
萌比男神i 2020-12-12 19:36

I want to be able to read man pages in vim. For some reason, it seems that vim isn\'t able to read the output of programs through piping (i.e \'(man ls) | vi\' doesn\'t seem

相关标签:
11条回答
  • 2020-12-12 20:20

    You also can press shift-k on your c function to print the man page

    0 讨论(0)
  • 2020-12-12 20:22

    On my system (Mac OS X), I found that the above left control characters in the output. Instead I used:

    export MANPAGER="col -b | vim -MR - "
    

    then just e.g.

    man vim
    

    The vim options turn off modifying the buffer and make it read-only. This stops vim complaining if you try to exit with ":q" (you can use :q! of course, but you might as well set the options).

    This is also handy for general use - I have the following. The -c command names the buffer, just for completeness.

    alias vimpager="vim -MR -c 'file [stdin]' -"
    
    0 讨论(0)
  • 2020-12-12 20:23

    You can always use info command for info pages and do info {cmd} | vim.

    • Source.
    0 讨论(0)
  • 2020-12-12 20:26

    For some reason, it seems that vim isn't able to read the output of programs through piping […]

    According to the man-page, you need to specify a file of - to get it to read from standard input; so:

    man ls | vi -
    

    If that doesn't work, you might try using process substitution:

    vi <(man $1)
    

    which creates a sort of pseudo-file and passes it to vi.

    0 讨论(0)
  • 2020-12-12 20:28

    Here is what I did, I've made function in my .bashrc with this

    vman() { vim <(man $1); }
    

    so when I call vman this automatically calls vim with stdin the man itself, it works great.

    0 讨论(0)
提交回复
热议问题