11

Estoy tratando de lograr algo simple, generalmente llamado "sugerencias de funciones". Por ejemplo, editores basados ​​en scintilla tienen que:Indicaciones de la función Vim para C

enter image description here

escribe un nombre, y acaba de obtener el prototipo. Hay algunos problemas con los que, en vim:

  • Tienes que reconstruir las ctags para mantenerla al día
  • No se puede escribir CX CO después de la (, vas a obtener " patrón no encontrado"
  • no se puede escribir CX CO en el modo normal, el cursor se acaba de saltar alrededor
  • se obtiene la ventana de previsualización molesto en la parte superior

he probado Fe w complementos; la mayoría de ellos ensucian las cosas aún más [^ 1]. ¿Alguien puede recomendar una manera simple de conseguir eso? Un rectángulo simple que contiene el prototipo de función y nada más.

[^ 1] Es realmente alucinante cuán idiotas son algunos de estos complementos. Un complemento (no lo mencionaré) en realidad contenía en el archivo .vim una lista de funciones de libc.

+1

* Un complemento (no lo mencionaré) en realidad contiene en el archivo .vim una lista de funciones de libc *. ¿Qué está mal con eso? Tendrás una base de datos en alguna parte, ¿verdad? ¿O es el problema de que el DB no está almacenado en un formato secreto de propiedad ilegible? – eckes

+0

@eckes Ese complemento ya usa ctags. – user1497069

+0

:-) bien. Entonces es una mala idea. – eckes

Respuesta

0

Intente utilizar eclim (complemento para la integración con Eclipse).

Esta solución se sobrepasa mucho pero funciona en todos los casos.

8

ctags para autocompletar es un desastre. Le sugiero que pruebe un plugin basado en el compilador como clang-complete o gcc-sense (no lo he probado). Las ventajas son:

  • más precisión que lo que hacen es más o menos recopilando
  • errores de compilación están marcados sobre la marcha sobre el código fuente

Tienes que reconstruir las ctags para mantenerla hasta la fecha

que no es necesario para hacer frente a ctags (que todavía son útiles para saltar alrededor, aunque)

No se puede escribir C-C X-O después de la (, vas a obtener "Patrón no encontrado"

lo que se puede esperar?

No se puede escribir CX CO en el modo normal, el cursor se acaba de saltar alrededor

siempre se puede volver a asignar esa secuencia si usted piensa que es un error frecuente (algo así como nnoremap <C-x><C-o> a<C-x><C-o>)

aparezca la ventana de previsualización molesto en la parte superior

puede desactivar esto quitando preview desde la opción completeopt. veo :help completeopt

estoy usando la siguiente configuración:

here

y algunos vimrc:

set pumheight=10    " so the complete menu doesn't get too big 
set completeopt=menu,longest " menu, menuone, longest and preview 
let g:SuperTabDefaultCompletionType='context' 
let g:clang_complete_auto=0 " I can start the autocompletion myself, thanks.. 
let g:clang_snippets=1  " use a snippet engine for placeholders 
let g:clang_snippets_engine='ultisnips' 
let g:clang_auto_select=2 " automatically select and insert the first match 

disfrutar!

Cuestiones relacionadas