Sto usando Vim per sviluppare C su Linux. Quando premo Kper aprire la pagina man per la parola sottostante, non ho il controllo su quale sezione man sia aperta. C'è un modo per specificarlo da qualche parte?
K
con altri tipi di file:h ftplugin
Sto usando Vim per sviluppare C su Linux. Quando premo Kper aprire la pagina man per la parola sottostante, non ho il controllo su quale sezione man sia aperta. C'è un modo per specificarlo da qualche parte?
K
con altri tipi di file:h ftplugin
Risposte:
Citando dalla documentazione
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
sembra essere il valore predefinito per l' 'keywordprg'
impostazione, quindi semplicemente usando un conteggio prima di digitare Ksembra fare il trucco.
(Testato con successo con 2Ke con 3Kil cursore acceso open
).
Da :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.
Quindi 3Kdovrebbe fare il trucco
Se sei su Linux, probabilmente stai usando mandb man
e puoi controllare l'ordine in cui vengono cercate le sezioni. Vedi man 1 man
:
MANSECT
Se $ MANSECT è impostato, il suo valore è un elenco di sezioni delimitate da due punti e viene utilizzato per determinare quali sezioni del manuale cercare e in quale ordine. L'impostazione predefinita è "1 nl 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7", a meno che non venga sovrascritto dalla direttiva SECTION in /etc/manpath.config.
Quindi un'altra opzione è quella di impostare nei file di inizializzazione della shell:
MANSECT=3:3posix:3pm:3perl:3am:1:n:l:8:2:5:4:9:6:7
export MANSECT
O nel tuo vimrc:
let $MANSECT="3:3posix:3pm:3perl:3am:1:n:l:8:2:5:4:9:6:7"
(Inoltre, a seconda di ciò che stai programmando, la sezione 2 potrebbe anche aver bisogno di una priorità più alta.)
(Oppure, come dice la manpage, impostare l'intero sistema /etc/manpath.config
.)
Questo funziona anche per l'uomo di FreeBSD .
-s
fa internamente
-s
annulla MANSECT
. Ma questo è utile per impostare un elenco di priorità invece di forzare una sezione specifica (cosa <count>K
che farà), che potrebbe essere più utile. Ad esempio, se open(3posix)
non è disponibile, open(2)
sarebbe comunque utile (probabilmente di più). man -s 3 open
semplicemente ignorerebbe open(2)
.
set keywordprg=man\ 3\ -s
al mio .vimrc