Search code examples
linuxunixvimvimanpage

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


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. E.g (man ls) | vi doesn't seem to work, bonus points for somebody who can explain why.

To get around this, I've been using the following little script:

tempo = `mktemp`
man $1 > $tempo ; vi $tempo

This script uses temporary files which I guess work fine, but I was wondering if there was a good way to read man pages in Vim without resorting to creating temporary files


Solution

  • 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.