Recientemente traté de configurar un flujo de trabajo de iOS basado en Vim.clang_complete: autocompletado de Vim para iOS
He encontrado clang_complete, y se han establecido las opciones de usuario se escuchan en mi .vimrc al igual que
let g:clang_user_options='-fblocks -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -D__IPHONE_OS_VERSION_MIN_REQUIRED=40300'
como se describe aquí: http://www.zenskg.net/wordpress/?p=199#comment-229
y añadido unas marco caminos lib/cabecera /. No voy a publicar toda la línea porque es enorme.
Así que probó la compilación de uno de los archivos en mi proyecto usando clang
desde la línea de comandos (usando las mismas opciones), y se compila bien, pero sólo se si uso la bandera -arch armv6/7
. Si no lo hago, intenta compilar para i386 y se queja de que faltan archivos de encabezado.
Hasta ahora todo bien. Ahora solo uso exactamente las mismas opciones que di para clang
, para las opciones de usuario clang_complete
en mi .vimrc
¿verdad?
Nope. Cuando lo hago y trato de autocompletar una palabra en Vim, que dice
unknown argument: '-arch'
en la lista Quickfix de Vim. Necesito esta bandera, ¿cómo debo proceder?
Todas las ideas útiles. Me encantaría obtener la finalización del código iOS trabajando bajo Vim.
Muchas gracias ... Esto me ha llevado mucho más lejos. Ejecuté xcodebuild en modo detallado, copié las opciones de clang, luego ejecuté clang con estas opciones en modo detallado, luego copié las opciones de clang -cc1 de la salida en mi .vimrc. clang_complete todavía no puede autocompletar mi código, creo que necesito usar la bandera -frameworks que no parece tener un equivalente en -cc1. ¿Podría indicarme alguna documentación? Las páginas man no son muy buenas. Nunca hubiera sabido sobre la opción -cc1 sin que me lo digas. – Sam
Aquí hay algo que puedes probar: abre ~/.vim/plugin/clang_complete.vim (o donde hayas instalado clang_complete), y busca la función ClangCompleteBinary. Hay dos cosas que puedes probar allí: 1. Comenta el bloque de condición v: shell_error. Clang a menudo devuelve buenas opciones de finalización incluso cuando tenía un error de compilación, y clang_complete ignora este hecho. 2. cambie el sistema (l: comando) al sistema (l: comando. '| & Tee /tmp/clang.log') y active una terminación desde vim. Entonces podrá ver en /tmp/clang.log la salida de error exacta de clang. Espero que ayude. –