Considere este comando shell:
$ MANPAGER='vim -Nu NONE -R -' man git-credential-cache
Faz man(1)
exibir a página de manual do git-credential-cache(1)
Vim.
No entanto, o nome da página man – conforme exibido na primeira linha do buffer – é GIT-CREDENTIAL-CAC(1)
. Observe como HE
está faltando no final do nome:
Eu esperaria este nome em vez disso:
GIT-CREDENTIAL-CACHE(1)
^^
Corri strace(1)
para ver quais chamadas de sistema foram usadas por man(1)
:
$ MANPAGER='vim -Nu NONE -R -' strace -o log man git-credential-cache
No final do arquivo de log, posso ver uma chamada de sistema read(2)
e write(2)
, usando o nome do buffer GIT-CREDENTIAL-CAC(1)
:
read(7, "GIT-CREDENTIAL-CAC(1) "..., 4096) = 2720
...
write(8, "GIT-CREDENTIAL-CAC(1) "..., 2720) = 2720
Então parece que é man(1)
e não vim(1)
que está truncando o nome da página de manual.
Aqui está o conteúdo completo do arquivo de log , outro arquivo de log contendo a saída do mesmo strace(1)
comando, mas com o -f
argumento adicional para rastrear também os processos filhos e a árvore de processos que leva ao man(1)
processo:
$ pstree -lsp $(pidof man)
systemd(1)---lightdm(947)---lightdm(1114)---upstart(1123)---sh(1324)---xfce4-session(1335)---xfce4-panel(1347)---panel-8-whisker(1396)---xterm(22546)---bash(22547)---strace(23182)---man(23184)---vim(23194)
Existe uma maneira de evitar man(1)
truncar GIT-CREDENTIAL-CACHE(1)
em GIT-CREDENTIAL-CAC(1)
?
A razão pela qual faço esta pergunta é porque o truncamento faz com que uma mensagem de erro seja exibida ao usar o plug-in do Neovim man :
┌ Taken from `:h man.vim` in Neovim
├────────┐
$ MANPAGER='nvim +Man!' man git-credential-cache
man.vim: command error (7) man -w git-credential-cac: No manual entry for git-credential-cac
Meio Ambiente:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
$ man --version
man 2.7.5
$ vim --version | head -n2
VIM - Vi IMproved 8.1 (2018 May 18, compiled Sep 3 2019 11:05:36)
Included patches: 1-1967
$ nvim --version | head -n1
NVIM v0.4.0-1856-g82d52b229
Também não é
man
quem está truncando:Então você terá que mexer no que
git
estiver usando para gerar suas manpages e reconstruí-las (a última vez que verifiquei que eles estavam usandoasciidoc
-- a coisa mais lenta do universo ;-)).