AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 779347
Accepted
Martian2020
Martian2020
Asked: 2024-07-02 11:51:30 +0800 CST2024-07-02 11:51:30 +0800 CST 2024-07-02 11:51:30 +0800 CST

在手册页搜索中未找到两行之间的单词分割

  • 772

我使用的是 Linux Mint 21(基于 Ubuntu)。刚刚注意到man页面内部搜索(/)在两行之间找不到单词(该单词在页面源代码中是完整的,以连字符和缩进显示)。我非常惊讶。有什么补救措施吗?

网络搜索在最佳结果中没有发现这个问题,也许它很少见,甚至是我的系统上的一个小故障?

我可以禁用分词作为一种解决方法吗?完全禁用吗?如果不行,那么针对roff代码中的特定行禁用吗?

例如man mpv.1(支持。)

描述 mpv 是基于 MPlayer 和 mplayer2 的媒体播放器。它支持多种视频文件格式、音频和视频编解码器以及字幕类型。特殊输入 URL 类型可用于从磁盘文件以外的各种来源读取输入。根据平台的不同,支持多种不同的视频和音频输出方法。

来源:

\fBmpv\fP 是基于 MPlayer 和 mplayer2 的媒体播放器。它支持多种视频文件格式、音频和视频编解码器以及字幕类型。特殊输入 URL 类型可用于从磁盘文件以外的各种来源读取输入。根据平台的不同,支持各种不同的视频和音频输出方法。

編輯:已編輯/etc/groff/man.local

.\" -*- nroff -*-
.\"
.\" This file is loaded after an-old.tmac.
.\" Put any local modifications to an-old.tmac here.
.
.  \" Disable hyphenation.
.nr HY 0
.
.if n \{\

ETC...

man
  • 1 1 个回答
  • 229 Views

1 个回答

  • Voted
  1. Best Answer
    TheNotoriousGBR
    2024-07-02T13:07:31+08:002024-07-02T13:07:31+08:00

    我使用的是 Linux Mint 21(基于 Ubuntu)。刚刚注意到,如果将 man 页面内部搜索 (/) 拆分为两行,则找不到单词(该单词在页面源代码中是完整的,以连字符和缩进显示)。我非常惊讶。有什么补救措施吗?

    是的;您预料到了主要问题。

    网络搜索在最佳结果中没有发现这个问题,也许它很少见,甚至是我的系统上的一个小故障?

    根本不是。您的分页器只知道它已读取的缓冲区或流的内容。它无法理解连字或断字,而且在任何合理(和一般)的基础上也无法理解。换句话说,它无法知道手册页源文档在格式化之前是什么样子。

    我可以禁用单词拆分作为一种解决方法吗?完全禁用吗?

    是的。

    编辑:正如 Stephen Kitt 在该答案的评论中指出的那样,man-db man 支持一个--nh选项(以及更长的同义词)来执行此操作(在一定程度上)。shell 函数可能满足您的需要。

    manh () {
      man --nh "$@"
    }
    

    或者:

    安排将-rHY=0(或-r HY=0) 选项传递给groff 。这在groff_man (7) 页面中有记录。

     -rHY=0   Disable automatic hyphenation.  Normally, it is
              enabled (1).  The hyphenation mode is determined by the
              groff locale; see section “Localization“ of groff(7).
    

    例如,在 Debian 系统上,您可以通过环境变量将此选项提供给groffMANROFFOPT。

    MANROFFOPT=-rHY=0
    

    如果您希望所有手册页都关闭自动连字符(见下文),您可以编辑/etc/groff/man.local文件来执行与roff请求等效的操作。

    .nr HY 0
    

    groff_man (7)的“文件”部分说明了该配置文件存储在您的安装中的什么位置。不同的供应商将其放在不同的地方。

    从技术上讲,这只是一个几乎完整的解决方案——就像它控制的原始roff请求一样,此选项仅关闭单词的自动连字符。格式化程序仍然(通常)会在显式连字符处断开,例如单词“user-defined”。

    如果不是,那么 roff 代码中的特定行是什么?

    roff\%源中的转义序列会在单词的最开头出现连字符时抑制单词的连字符连接。(roff中的“单词”由空格分隔;在大多数情况下,这意味着空格和换行符。)例如,我们可以这样做。

    The remainder of these macros are \%user-defined.
    

    并且格式化程序不会像平常一样在连字符后断开。

    不幸的是,如果你在单词中使用\%again,会发生什么情况并没有得到很好的定义,不同的格式化程序会有不同的行为。 但这是一个极端的情况。

    最后,我要指出的是man-db man (1)的这个功能,它在某种程度上缓解了整个问题。

         -K, --global-apropos
                Search for text in all manual pages.  This is a brute‐force
                search, and is likely to take some time; if you can, you
                should specify a section to reduce the number of pages that
                need to be searched.  Search terms may be simple strings
                (the default), or regular expressions if the --regex option
                is used.
    
                Note that this searches the sources of the manual pages, not
                the rendered text, and so may include false positives due to
                things like comments in source files.  Searching the
                rendered text would be much slower.
    

    我希望这有帮助。

    • 5

相关问题

  • 如何显示猫(不是男人)页面?

  • 如何下载文档并使其可以从命令行访问?

  • 更新了 GNU/Linux 系统中 ifconfig 的手册页。

  • 手册页窗口中的可用命令在哪里记录,这些命令是否依赖于系统?

  • 将手册页导出到 postscript

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve