2011-04-12 10 views
18

que copió clang_complete.vim al plugin, pero cuando he escrito . después de alguna variable, que dice:Sonido metálico completo para Vim

patrón no encontró

Busqué este tema, y ​​alguien dijo que debería configure g:clang_complete_auto: y g:clang_complete_copen:. ¿Cómo puedo hacer esto?

+1

Relacionado: http://stackoverflow.com/q/1115876/1968 –

+8

¿Desde cuándo las preguntas sobre los editores se consideran fuera de tema? – UncleZeiv

Respuesta

11

abra otro archivo de ejemplo

vim /tmp/sample.cpp 

e introduzca un código CPP

#include <iostream> 

int main() { 
    std:: // <-- this should complete 
} 

Tenga en cuenta que en realidad se necesita incluir los encabezados, ya que la terminación se realiza con el compilador. Si esto funciona, pero su proyecto sigue diciendo "Patrón no encontrado", entonces es probable que clang ++ no pueda compilar su proyecto. ¿Utiliza algún conmutador -I cuando compila su código? Agréguelos a un archivo llamado .clang_complete en su directorio de proyectos.

Para mí esto funciona bien con mi carpeta .vim/plugin que contiene sólo el archivo clang_complete.vim que está disponible para su descarga:

$ find .vim 
.vim 
.vim/plugin 
.vim/plugin/clang_complete.vim 

... pero en este informe https://github.com/Rip-Rip/clang_complete/issues/39 tema se sugiere que es posible que necesite más que eso archivo (archivos adicionales están en el repositorio git).

0

Para configurar Vim, debe encontrar o crear el archivo .vimrc:

$ vim ~/.vimrc

A continuación, introduzca:

let g:clang_complete_copen = 1 
+0

Todavía no funciona. Clang funciona bien para compilar el código. – dalibocai

+0

@dalibocai ¿Puedes probar con un pequeño proyecto de solo un archivo? ¿Tienes otros plugins? – etaty

+0

Lo pruebo en std :: string, y no funciona. Ya borré todos los archivos de omni finalización. Probé clang ++, funciona bien. – dalibocai

1

¿Intentó compilar el código fuera de Vim, al invocar explícitamente Clang en la línea de comandos?

Tuve el mismo problema con mi código, pero resulta que Clang no pudo compilar mi código debido al uso de las bibliotecas de MPI (mpich2). ¿Tal vez un problema similar esté causando que Clang falle en tu caso? En mi caso, si me quito los MPI-dependencias, todo funciona bien, por ejemplo, en algo así como:

#include <iostream> 
#include <string> 

int main() { 
    std::string myString("test string"); 
    std::cout << myString.size() << std::endl; // After typing the dot, I get a list of std::string methods 
} 

Por la vías, todavía echo clang_complete en mi código MPI. ¿Alguien encontró una solución para esto?

26

Tuve el mismo problema y lo resolví agregando lo siguiente a mi.vimrc

let g:clang_user_options='|| exit 0' 
+2

Para contexto adicional, ver: https://github.com/Rip-Rip/clang_complete/issues/10 – Cepheid

+1

Esto definitivamente merece un voto. – zeboidlund

+0

+1 aye - esto me ayudó también – kfmfe04

4

El siguiente puso las cosas que trabajan para mí en Cygwin utilizando clang version 3.0 (tags/RELEASE_30/final), así como en Windows utilizando una versión the Clang build instructions y desprotegido de la línea externa (por lo general estable, ya que he leído) ayer (clang version 3.1 (trunk 154056)) y construido con Visual Studio 2010:

" clang_complete 
let g:clang_complete_auto = 0 
let g:clang_complete_copen = 1 
" :h clang_complete-auto_user_options 
if has('win32unix') " Cygwin 
     " Using libclang requires a Vim built with +python 
     let g:clang_use_library = 1 
     " Mit der Option "gcc" kriege ich Fehler. 
     " Remove "gcc" option as it causes errors. 
     let g:clang_auto_user_options='path, .clang_complete' 
elseif has('win32') " Windows 
     let g:clang_auto_user_options='path, .clang_complete' 
     let g:clang_use_library = 1 
     let g:clang_library_path='D:\Sourcen\LLVM\build\bin\Debug' 
endif 

tenga en cuenta que la versión de Windows puede tener errores de aserción esporádicos, pero funciona muy bien, aunque no es exactamente igual que la versión de Cygwin. Supongo que tiene que ver con el uso de archivos de encabezado MSVC frente a GCC.

La versión de Cygwin tiene un error: release unlocked lock inicial, pero funciona independientemente.

Cuestiones relacionadas