funciones - VIM: ¿Soluciones de análisis de código C/C++ más precisas?
curso de c++ desde cero (2)
Árbol de búsqueda y llamada
Puedes probar eclim , que es una forma de usar algunas funciones de Eclipse en Vim.
Para C / C ++, proporciona:
- Finalización sensible al contexto (aunque está deshabilitado en Windows porque tiene errores)
- Búsqueda sensible al contexto en archivos de Proyecto (a través de
:CSearchContext
) - Árbol de llamadas para funciones / métodos (
:CCallHierarchy
) - Validación de Código (
:Validate
)
No es genial, pero puede ayudar en algunos casos.
Completar Código
Con respecto a la finalización automática del código, principalmente uso OmniCppComplete , que utiliza etiquetas para proporcionar la finalización del código consciente del contexto. No es tan malo.
Según lo aconsejado por Luc Hermitte, también puedes usar clang_complete que no necesita ctags, pero necesita instalar clang.
Pre: He estado trabajando en VIM durante casi un año. Muchas cosas geniales: combinaciones, guiones. Cuando estoy editando algo en un editor diferente, me siento lento / incómodo sin la navegación de VIM.
El problema: lo que realmente más me molesta es la navegación por el código fuente con las herramientas existentes (ctags, cscope). A menudo, ctags no puede encontrar la declaración de una variable, cscope en lugar de ctags encuentra todas las definiciones con el mismo nombre de variable. La misma locura con la navegación en el árbol de llamadas, la búsqueda de declaraciones hacia adelante junto con una definición de clase única, etc. En comparación con MS Intellisense, Visual Assist o incluso la navegación con código fuente en Eclipse, las etiquetas / cscope exuberantes parecen estar obsoletas durante al menos 10 años.
Sé que existen herramientas como ViEMU, pero realmente no resuelven el problema, ya que se pierde mucha funcionalidad de VIM.
La pregunta: me preguntaba si hay una herramienta que haga mejor el análisis de origen, o si hay alguna forma de integrar los motores de análisis de origen como Intellisense en VIM. Tal vez hay soluciones comerciales o hay personas que están listas para implementar una.
Todos los beneficios de VIM parecen ahorrar menos tiempo del que se desperdicia mientras navega a la definición de clase, en comparación con Visual Assist, donde se realiza mediante un solo acceso directo Alt-G.
Desafortunadamente, es un problema real. ctags o cscope difícilmente pueden competir con la búsqueda de código de Visual Studio; en realidad, utiliza un front-end de compilador de C ++ para analizar el código del editor.