Alguns editores (como o visual studio no windows) executam o preenchimento automático de C ++ que entende C ++. Por exemplo, dado:
#include <vector>
int main(void) {
std::vector<int> v;
v.i
No visual studio, o preenchimento automático conhece o único método std::vector<int>
que começa com um i insert
.
É possível obter esse tipo de preenchimento automático no vim?
ide
autocompletion
filetype-c++
Chris Jefferson
fonte
fonte
cd
editei o diretório do plugin YCM (~/.vim/bundle
para mim) e corri./install --clang-completer
.Respostas:
Eu realmente gosto de clang_complete por isso. Requer clang, e você precisa dizer onde reside o libclang em seu sistema. Depois disso, funciona maravilhosamente.
As pessoas podem sugerir o YouCompleteMe, mas, para ser sincero, esse plug-in é bastante inchado pelo que diz que faz e requer muitas etapas para instalar. Eu também o segfault Vim em várias ocasiões. Eu não poderia estar mais feliz com clang_complete.
É isso que recebo quando digito
v.
:fonte
return 0
abaixo desse menu pop-up.O plugin YouCompleteMe ( Link ) foi ótimo para mim. Ele usa libclang para gerar o recurso de preenchimento automático, fornecendo uma conclusão precisa.
Possui muita personalização, especialmente ao trabalhar com sinalizadores de compilação. Você pode editar o "gerador de sinalizador" editando um script python por projeto ( exemplo ). Mas, para mim, a principal vantagem é que ele suporta o Clang Compilation Database ( Link! ). Isso significa que você pode compilar seu código normalmente e solicitar ao clang para cuspir todos os sinalizadores usados na compilação e usá-los com o YouCompleteMe. Muito útil se você deseja que sua ferramenta de preenchimento automático esteja ciente de suas definições de macro ou do local de todos os arquivos de cabeçalhos no seu sistema sem nenhum esforço para digitá-lo manualmente.
fonte
O YouCompleteMe não é tão difícil de instalar e tem sido bastante estável para mim. Eu migrei do clang_complete para o YouCompleteMe anos atrás. Uma coisa que eu concordo, é realmente inchada com um enorme histórico de submissões, muitas dependências internas e suporte para muitos idiomas com os quais você pode não se importar, mas ainda assim vai acabar clonando seus submódulos associados. Isso, esse é um problema do YouComplemeMe, ainda assim ... ele faz o trabalho.
Eu trabalhei em uma bifurcação com finalidade especial para suportar melhor o C ++, você pode conferir este gif mostrando:
https://s3.amazonaws.com/f.cl.ly/items/1e2F0A123h331c1G0L0R/SadBart.gif
Ele aproveita as novas informações de parâmetro que a Clang pode fornecer. Você pode aprender mais sobre isso neste artigo meu: http://nosubstance.me/articles/2015-01-29-better-completion-for-cpp/ .
fonte