Algunos editores (como Visual Studio en Windows) realizan autocompletar C ++ que entienden C ++. Por ejemplo, dado:
#include <vector>
int main(void) {
std::vector<int> v;
v.i
En Visual Studio, el autocompletado sabe que el único método std::vector<int>
que comienza con una i es insert
.
¿Es posible obtener este tipo de autocompletado en vim?
ide
autocompletion
filetype-c++
Chris Jefferson
fuente
fuente
cd
edité al directorio de complementos de YCM (~/.vim/bundle
para mí) y corrí./install --clang-completer
.Respuestas:
Realmente me gusta clang_complete para esto. Requiere un sonido metálico, y debes decirle dónde reside libclang en tu sistema. Después de eso, funciona de maravilla.
La gente puede sugerir YouCompleteMe, pero para ser honesto, ese complemento está muy inflado por lo que dice que hace, y requiere demasiados pasos para instalarlo. También lo tuve segfault Vim en múltiples ocasiones. No podría estar más feliz con clang_complete.
Esto es lo que obtengo cuando escribo
v.
:fuente
return 0
debajo de ese menú emergente.El complemento YouCompleteMe ( Link ) me ha funcionado muy bien. Utiliza libclang para generar la función de autocompletar, proporcionando una finalización precisa.
Tiene mucha personalización, especialmente cuando se trabaja con banderas de compilación. Puede editar el "generador de banderas" editando un script de Python por proyecto ( Ejemplo ). Pero, para mí, la principal ventaja es que es compatible con Clang Compilation Database ( Link! ). Esto significa que puede compilar su código normalmente y pedirle a clang que escupe todas las banderas que usa para la compilación, y usar esas banderas con YouCompleteMe. Muy útil si desea que su herramienta de autocompletado conozca sus definiciones de macro o la ubicación de todos los archivos de encabezados en su sistema sin ningún esfuerzo de escribirlo manualmente.
fuente
YouCompleteMe no es tan difícil de instalar, y ha sido bastante estable para mí, he migrado de clang_complete a YouCompleteMe hace años. Una cosa con la que estoy de acuerdo es que está repleto de un gran historial de confirmaciones, muchas dependencias internas y soporte para muchos idiomas que quizás no le interesen pero que terminen clonando sus submódulos asociados. Eso, eso es un problema con YouComplemeMe, aún así ... hace el trabajo.
He trabajado en una bifurcación con un propósito especial para admitir mejor C ++, puedes verificar este gif para mostrarlo:
https://s3.amazonaws.com/f.cl.ly/items/1e2F0A123h331c1G0L0R/SadBart.gif
Aprovecha la nueva información de parámetros que Clang puede proporcionar, puede obtener más información al respecto en este artículo mío: http://nosubstance.me/articles/2015-01-29-better-completion-for-cpp/ .
fuente