我正在使用Vim在Linux上开发C。
当我按K来打开底层单词的手册页时,我无法控制要打开哪个手册段。
是否有一个指定某处的方式?

评论

很棒的建议:我最终在我的.vimrc文件中添加了这个关键字setprg = man \ 3 \ -s

您是否想要不同语言的不同“帮助”程序?

除了第3章以外,不需要从vim内部启动人

您可能需要在ftplugin中设置此关键字prg,以便在其他文件类型中保留有效的K:h ftplugin

#1 楼

从文档中引用

  When 'keywordprg' is equal to "man -s", a count
  before "K" is inserted after the "-s".  If there is
  no count, the "-s" is removed.


man -s似乎是'keywordprg'设置的默认设置,因此在键入K之前简单地使用计数似乎可以解决问题。
(通过2K和3K成功测试,并且光标位于open上。)

评论


该死的我来不及了43秒! :)

–statox♦
18-10-16在7:56

#2 楼

来自:h K

                            *K*
K           Run a program to lookup the keyword under the
            cursor.  [...]
            Special cases:
            - When 'keywordprg' is equal to "man" or starts with
              ":", a [count] before "K" is inserted after
              keywordprg and before the keyword.  For example,
              using "2K" while the cursor is on "mkdir", results
              in: 
                !man 2 mkdir
            - When 'keywordprg' is equal to "man -s", a count
              before "K" is inserted after the "-s".  If there is
              no count, the "-s" is removed.


所以3K应该可以解决问题

#3 楼

如果您使用的是Linux,则可能会使用mandb的man,并且可以控制搜索部分的顺序。请参阅man 1 man


MANSECT
如果设置了$ MANSECT,则其值是用冒号分隔的节列表。搜索并按
顺序。缺省值为“ 1 nl 8 3 2 3posix 3pm 3perl 3am 5 4 9 6
7”,除非被/etc/manpath.config中的SECTION指令覆盖。


因此,另一个选择是在shell初始化文件中设置:

MANSECT=3:3posix:3pm:3perl:3am:1:n:l:8:2:5:4:9:6:7
export MANSECT


,或者在vimrc中设置: >(另外,根据您所编程的内容,第2节可能还需要更高的优先级。)

(或者,如联机帮助页所述,请在/etc/manpath.config中设置系统范围。)

这也适用于FreeBSD的人。

评论


那是-s在内部做的

–克里斯蒂安·布拉班特(Christian Brabandt)
18-10-16在11:26

实际上,-s覆盖MANSECT。但这对于设置优先级列表很有用,而不是强制执行特定的部分( K将执行此操作),这可能会更有用。例如,如果open(3posix)不可用,则open(2)仍然有用(可能更多)。 man -s 3 open只会忽略open(2)。

–muru
18-10-16在11:38