MYV*_*MYV 20 unix linux vi vim manpage
我希望能够在vim中阅读手册页.由于某种原因,似乎vim无法通过管道读取程序的输出(即'(man ls)| vi'似乎不起作用,奖励指向可以解释原因的人),并获得围绕这个,我一直在使用以下小脚本:
tempo = `mktemp`
man $1 > $tempo ; vi $tempo
Run Code Online (Sandbox Code Playgroud)
这个脚本使用的临时文件,我觉得工作正常,但我想知道是否有一个很好的方法来阅读vim中的手册页而不需要制作临时文件
glt*_*lts 35
Vim :Man在其运行时文件中包含一个手册页查看器.
把这一行放在你的vimrc中:
runtime! ftplugin/man.vim
Run Code Online (Sandbox Code Playgroud)
现在,您可以通过运行在Vim中读取语法高亮的手册页:Man.例如:
:Man 3 printf
Run Code Online (Sandbox Code Playgroud)
更好的是,您可以将光标放在缓冲区中的单词上,然后按<Leader>K(\K)查看该单词的手册页.
有关:h find-manpage完整用法和安装说明,请参阅.
rua*_*akh 30
出于某种原因,似乎vim无法通过管道读取程序的输出[...]
根据man-page,你需要指定一个文件-来让它从标准输入中读取; 所以:
man ls | vi -
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,您可以尝试使用进程替换:
vi <(man $1)
Run Code Online (Sandbox Code Playgroud)
它会创建一种伪文件并将其传递给vi.
Ror*_*ter 10
在我的系统(Mac OS X)上,我发现上面的左控制字符在输出中.相反,我用过:
export MANPAGER="col -b | vim -MR - "
Run Code Online (Sandbox Code Playgroud)
然后只是例如
man vim
Run Code Online (Sandbox Code Playgroud)
vim选项关闭修改缓冲区并使其为只读.如果您尝试以":q"退出,这会阻止vim抱怨(您可以使用:q!当然,您也可以设置选项).
这对于一般用途也很方便 - 我有以下内容.-c命令命名缓冲区,只是为了完整性.
alias vimpager="vim -MR -c 'file [stdin]' -"
Run Code Online (Sandbox Code Playgroud)
这就是我所做的:我在 .bashrc 中创建了一个函数:
vman() { vim <(man $1); }
Run Code Online (Sandbox Code Playgroud)
当我调用vman它时,会自动调用 Vim 显示手册页。效果很好。