如何更改默认的“阅读”程序?

如何更改默认的“阅读”程序?

现在,当我运行时man (something)less用于查看它。然而,在 Mac OS X 上,我真的很喜欢使用触摸板而不是up/downpage-up/page-down按钮滚动。有没有办法只将文本打印到终端而不是使用lessor more

答案1

不确定 OSX,但希望它足够 Unix-y...

在 $HOME/.bashrc 中添加以下行:

export MANPAGER=cat

如果您希望所有分页程序都以这种方式运行,PAGER请进行设置。 如果设置则man使用MANPAGER,否则返回到PAGER,如果未设置则返回到more

答案2

为了获得您想要的效果,您可以在单独的窗口中获得手册页,并且视图从第一页开始,请将以下内容添加到您的~/.bash_profile

function man {
    mf=`mktemp /tmp/$1-formatted-XXXXXXXXX`
    /usr/bin/man -t "$@" | pstopdf -i -o $mf
    mv $mf $mf.pdf
    open -W $mf.pdf
    rm $mf.pdf
}

您可以注销并重新登录来激活它,或者只需使用以下命令重新加载文件:

. ~/.bash_profile

后者存在重新定义诸如PATH具有重复信息的变量之类的风险。

此函数会覆盖该man命令,使其在临时文件中构建 PDF 格式版本的手册页,在 PDF 查看器中打开该文件(默认情况下为预览),然后在关闭查看器时删除临时 PDF。这个想法是,您的默认 PDF 查看程序可能会按照您想要的方式响应触摸板。

为了获得最后一个功能(删除临时 PDF),我必须等到open(1)PDF 查看器关闭才能继续。这意味着当 PDF 保持打开状态时,您无法继续使用终端窗口。解决这个问题的一种方法是删除该-W标志并按照open类似的命令执行sleep 1,这应该有足够的时间来打开预览。另一个黑客可能是将最后一行替换为如下内容:

( sleep 60 ; rm $mf.pdf ) &

这会将rm命令安排在未来 60 秒内,当然时间足够了。

答案3

经过谷歌搜索后偶然发现了这个页面。

为了回答原来的问题,less -R将启用鼠标滚轮/触摸板滚动。

在现代 macOS 中,shell$LESS变量已-R默认设置为。如果$PAGER设置为less并且滚动对您不起作用,请尝试运行以下命令:

export LESS="-R"

关于沃伦·杨的回答:映射man到 shell 函数可以更新以使用ps2pdf它是 Ghostscript 包的一部分(可以通过 Homebrew 安装:)brew install ghostscript,并对函数进行了一些小的调整(不再有 和 的标志,-i现在-o使用-stdin/stdout)。

function man() {
    mf=`mktemp /tmp/$1-formatted-XXXXXXXXX`
    /usr/bin/man -t "$@" | ps2pdf - $mf
    mv $mf $mf.pdf
    open -W $mf.pdf
    rm $mf.pdf
}

还可能值得注意的是,文件/tmp如果过去 3 天内未访问过它们,则会自动清除(至少在现代 macOS 上是这样)。

相关内容