Hombre abierto sección 3

10

Estoy usando Vim para desarrollar C en Linux. Cuando presiono Kpara abrir la página de manual para la palabra subyacente, no tengo control sobre qué sección de manual se abre. ¿Hay alguna manera de especificar eso en alguna parte?

stdcall
fuente
Sugerencias maravillosas: terminé agregando esto set keywordprg=man\ 3\ -sa mi .vimrc
stdcall
1
¿no quieres diferentes programas de "ayuda" para diferentes idiomas?
D. Ben Knoble
Nunca necesité lanzar al hombre desde dentro de vim para algo más que el capítulo 3
stdcall
2
Es posible que desee establecer esta palabra claveprg en un ftplugin para que siga trabajando Ken otros tipos de archivos:h ftplugin
statox

Respuestas:

18

Citando de la documentación

  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 -sparece ser el valor predeterminado para la 'keywordprg'configuración, por lo que simplemente usar un conteo antes de escribir Kparece ser el truco.

(Probado con éxito con 2Ky 3Ky el cursor está activado open).

Christian Brabandt
fuente
3
¡Maldita sea, llegué 43 segundos demasiado tarde! :)
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.

Entonces 3Kdebería hacer el truco

statox
fuente
4

Si estás en Linux, es probable que estés usando mandb's man, y puedes controlar el orden en que se buscan las secciones. Ver man 1 man:

MANSECT
Si $ MANSECT está configurado, su valor es una lista de secciones delimitadas por dos puntos y se utiliza para determinar qué secciones manuales buscar y en qué orden. El valor predeterminado es "1 nl 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7", a menos que sea anulado por la directiva SECTION en /etc/manpath.config.

Entonces, otra opción es establecer en sus archivos de inicialización de shell:

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

O en tu vimrc:

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

(Además, dependiendo de lo que esté programando, la sección 2 también podría necesitar una prioridad más alta).

(O, como dice la página de manual, configure todo el sistema /etc/manpath.config).

Esto también funciona para el hombre de FreeBSD .

muru
fuente
eso es lo que -shace internamente
Christian Brabandt
1
De hecho, -sanula MANSECT. Pero esto es útil para establecer una lista de prioridades en lugar de forzar una sección específica (que <count>Kservirá), que podría ser más útil. Por ejemplo, si open(3posix)no está disponible, open(2)aún sería útil (probablemente más). man -s 3 opensimplemente ignoraría open(2).
muru