Homme ouvert section 3

10

J'utilise Vim pour développer C sur Linux. Lorsque j'appuie sur Kpour ouvrir la page de manuel du mot sous-jacent, je n'ai aucun contrôle sur la section de manuel ouverte. Existe-t-il un moyen de spécifier cela quelque part?

stdcall
la source
Merveilleuses suggestions: j'ai fini par ajouter ceci set keywordprg=man\ 3\ -sà mon .vimrc
stdcall
1
ne voulez-vous pas différents programmes «d'aide» pour différentes langues?
D. Ben Knoble
Jamais besoin de lancer man depuis vim pour autre chose que le chapitre 3
stdcall
2
Vous voudrez peut-être définir ce mot-cléprg dans un plugin ft afin que vous puissiez continuer à travailler Kdans d'autres types de fichiers:h ftplugin
statox

Réponses:

18

Citant de la documentation

  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 -ssemble être la valeur par défaut pour le 'keywordprg'paramètre, donc simplifier l'utilisation d'un nombre avant de taper Ksemble faire l'affaire.

(Test réussi avec 2Ket 3Ket le curseur étant sur open).

Christian Brabandt
la source
3
Merde, j'étais 43 secondes trop tard! :)
statox
8

De :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.

Alors 3Kdevrait faire l'affaire

statox
la source
4

Si vous êtes sous Linux, vous utilisez probablement des mandb manet vous pouvez contrôler l'ordre dans lequel les sections sont recherchées. Voir man 1 man:

MANSECT
Si $ MANSECT est défini, sa valeur est une liste de sections délimitées par deux-points et elle est utilisée pour déterminer les sections manuelles à rechercher et dans quel ordre. La valeur par défaut est "1 nl 8 3 2 3posix 15pm 3perl 3am 5 4 9 6 7", sauf si elle est remplacée par la directive SECTION dans /etc/manpath.config.

Une autre option est donc de définir dans vos fichiers d'initialisation du shell:

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

Ou dans votre vimrc:

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

(De plus, selon ce que vous programmez, la section 2 peut également nécessiter une priorité plus élevée.)

(Ou, comme le dit la page de manuel, définissez l'ensemble du système /etc/manpath.config.)

Cela fonctionne également pour l'homme de FreeBSD .

muru
la source
c'est ce que -sfait en interne
Christian Brabandt
1
En effet, -soutrepasse MANSECT. Mais cela est utile pour définir une liste de priorités au lieu de forcer une section spécifique (ce qui <count>Kfera l'affaire), ce qui pourrait être plus utile. Par exemple, s'il open(3posix)n'est pas disponible, il open(2)serait toujours utile (probablement plus). man -s 3 openignorerait simplement open(2).
muru