A maioria dos editores possui um recurso, como quando você pressiona algumas teclas colocando o cursor sobre uma função; ela exibe a documentação dessa função, juntamente com o número e o tipo de argumentos que a função recebe.
Fiquei me perguntando se o Vim oferece esse suporte. Por exemplo, ao codificar em C, eu uso uma função interna qsort()
. Como não tenho certeza sobre o tipo e o número de argumentos necessários, gostaria de conhecê-lo sem escapar do Vim. É possível?
autocompletion
sherelock
fonte
fonte
'keywordprg'
(o nome de um programa que pode lidar com a documentação para o idioma desejado), pressioneK
uma palavra-chave (que pode ser o nome de uma função), você deve obter as informações desejadas. Por exemplo, se você instalarcppman
( github.com/aitjcize/cppman ) e adicionar um autocmd dentro do seu vimrc comoautocmd FileType cpp setlocal keywordprg=cppman
, por exemplo ,cppman
deverá lidar com a documentação dentro de um buffer c ++. Não testado embora.cppman
seja uma excelente sugestão, se você tiver as páginas de manual C e C ++ (manpages-posix-dev
elibstdc++-X.Y-doc
pacotes em sistemas baseados em Debian) instaladas, o antigoman
deve funcionar.Respostas:
Se você pode configurar o YouCompleteMe , ele suporta C, C ++, JavaScript, Go e alguns outros idiomas. Aqui está em ação:
É um pouco chato de instalar , e uma vez instalado, você precisa configurá-lo para C e C ++ criando um
.ycm_extra_conf.py
. Tirei um deste repositório e obtive esse efeito.fonte
qsort(a
, a janela pop-up desaparece, dificultando a lembrança dos próximos argumentos.YcmCompleter GoTo
, que normalmente envia você para onde a função / classe foi definida no código. Essa é a linha logo acima da sequência de caracteres, que lista tudo o que você pediu. Não tenho certeza se os comentários embutidos estão no mesmo local em C / Java / C ++.Para C, pressionar
K
a palavra-chave abrirá a página de manual interna diretamente. Por exemplo, coloque o cursor naprintf
palavra-chave:Agora pressione
K
(K maiúsculo) e a página de manualprintf
deve aparecer no VIM:Isso parece funcionar imediatamente em todas as distros derivadas do Debian em que eu tentei, nenhuma configuração específica necessária.
fonte
printf(1)
comando, nãoprintf(3)
a função. Em qualquer caso, as páginas de manual da função C são demanpages-dev
, que geralmente são instaladas por padrão, mas nem sempre, e as funções POSIX estãomanpages-posix-dev
- normalmente não são instaladas por padrão, nem a documentação do C ++ (libstdc++-X.Y-doc
).Se você deseja uma documentação adequada , o plug-in no comentário de saginaw parece cobrir suas necessidades de C ++. Não conheço um genérico, mas você provavelmente pode encontrar alternativas para outros idiomas no vim.org.
E se…
você pode usar
<C-w>}
para abrir a definição da palavra-chave sob o cursor em uma janela de visualização. YMMV, é claro.Ver
:help preview-window
,:help tags
e:help ctags
.Você também pode usar a funcionalidade interna "incluir pesquisa" do Vim: pressione
[i
para imprimir a "assinatura" da palavra sob o cursor na linha de comando:Veja
:help include-search
.fonte
[i
é estranho. Funciona parastdlib.h
eqsort
, mas nãocstdlib
estd::qsort
ou apenasqsort
.<C-w>
significaCTRL-W
Qual é a nomenclatura usada nos:help
arquivos. Você pode usar:pc
para fechar a janela de visualização.O tipo de arquivo C / C ++ do Vim vem com uma função de omnicompleção decente, que suporta a funcionalidade de "visualização". Portanto, adicione "preview" à sua opção completeopt e veja a assinatura da função ao inserir a conclusão do modo.
No modo normal, você pode CTRL + W} para abrir manualmente a declaração da função na janela de visualização.
fonte
Como mencionado, pressionar
K
a palavra-chave funciona pesquisando uma página de manual. Para obter páginas de manual em C ++, você pode tentar https://github.com/aitjcize/cppman (ele obtém "páginas de manual" em cplusplus.com e cppreference.com).fonte
Instale o YouCompleteMe. Ao colocar o cursor sobre um identificador, digite o
YcmCompleter GetDoc
comando para obter o documento em uma pequena janela de visualização na parte inferior. Ele funciona em várias linguagens como python e c / c ++.O complemento também exibe a janela de visualização durante o recurso de preenchimento automático. Você pode personalizar o comportamento da visualização do documento com a
g:ycm_autoclose_preview_window_after_completion
variávelfonte