La mayoría de los editores tienen una característica como cuando presionas algunas teclas colocando el cursor sobre una función, aparece la documentación de esa función junto con el número y tipo de argumentos que toma la función.
Me preguntaba si Vim ofrece tal apoyo. Por ejemplo, mientras codifico en C, uso una función incorporada qsort(). Como no estoy seguro sobre el tipo y la cantidad de argumentos necesarios, me gustaría saberlo sin escapar de Vim. ¿Es posible?
autocompletion
sherelock
fuente
fuente

'keywordprg'(el nombre de un programa que puede manejar la documentación para el idioma que desea), entonces presioneKuna palabra clave (que puede ser el nombre de una función), debe obtener la información que desea. Por ejemplo, si instalacppman( github.com/aitjcize/cppman ) y agrega un autocmd dentro de su vimrc comoautocmd FileType cpp setlocal keywordprg=cppman, entoncescppmandebería manejar la documentación dentro de un búfer de c ++. No probado sin embargo.cppmanes una excelente sugerencia, si tiene instaladas las páginas de manual de C y C ++ (manpages-posix-devy loslibstdc++-X.Y-docpaquetes en los sistemas basados en Debian),mandebería funcionar.Respuestas:
Si puede configurar YouCompleteMe , es compatible con C, C ++, JavaScript, Go y algunos otros idiomas. Aquí está en acción:
Es un poco molesto de instalar , y una vez que está instalado, necesita configurarlo para C y C ++ creando un
.ycm_extra_conf.py. Saqué uno de este repositorio y obtuve este efecto.fuente
qsort(a, la ventana emergente desaparece, lo que dificulta recordar los siguientes argumentos.YcmCompleter GoTo, que generalmente lo envía a donde se definió la función / clase en el código. Esa es la línea justo encima de la cadena de documentación, que enumera todo lo que solicitó. No estoy seguro si los comentarios en línea están en el mismo lugar en C / Java / C ++.Para C, al presionar
Kla palabra clave se abrirá directamente la página de manual incorporada. Por ejemplo, coloque el cursor sobre laprintfpalabra clave:Ahora presione
K(mayúscula K) y la página de manual paraprintfdebería aparecer en VIM:Esto parece funcionar de forma inmediata en todas las distribuciones derivadas de Debian en las que lo he probado, no se requiere una configuración específica.
fuente
printf(1)comando, noprintf(3)la función. En cualquier caso, las páginas de manual de la función C son demanpages-dev, que generalmente se instala de manera predeterminada, pero no siempre, y las funciones POSIX están dentromanpages-posix-dev, generalmente no se instalan de manera predeterminada, ni tampoco la documentación de C ++ (libstdc++-X.Y-doc).Si desea la documentación adecuada , el complemento en el comentario de saginaw parece cubrir sus necesidades de C ++. No conozco uno genérico, pero probablemente pueda encontrar alternativas para otros idiomas en vim.org.
Si…
puede usar
<C-w>}para abrir la definición de la palabra clave debajo del cursor en una ventana de vista previa. YMMV, por supuesto.Ver
:help preview-window,:help tagsy:help ctags.También puede usar la funcionalidad incorporada "incluir-búsqueda" de Vim: presione
[ipara imprimir la "firma" de la palabra debajo del cursor en la línea de comandos:Ver
:help include-search.fuente
[ies raro. Funciona parastdlib.hyqsort, pero nocstdlibystd::qsorto simplementeqsort.<C-w>significaCTRL-Wcuál es la nomenclatura utilizada en los:helparchivos. Luego puede usar:pcpara cerrar la ventana de vista previa.El tipo de archivo C / C ++ de Vim viene con una función de omnicompleción decente, que admite la funcionalidad de "vista previa". Por lo tanto, agregue "vista previa" a su opción completeopt y vea una firma de función cuando finalice el modo de inserción.
En modo normal, podría CTRL + W} para abrir la declaración de función en la ventana de vista previa manualmente.
fuente
Como se mencionó, presionar
Kla palabra clave funciona buscando en una página de manual. Para obtener páginas de manual de C ++, puede probar https://github.com/aitjcize/cppman (obtiene "páginas de manual" de cplusplus.com y cppreference.com).fuente
Instala YouCompleteMe. Cuando coloca el cursor sobre un identificador, ingrese el
YcmCompleter GetDoccomando para obtener el documento en una pequeña ventana de vista previa en la parte inferior. Funciona en muchos lenguajes como python y c / c ++.Youcompleteme también muestra la ventana de vista previa durante su función de autocompletar. Puede personalizar el comportamiento de la vista previa del documento con
g:ycm_autoclose_preview_window_after_completionvariable.fuente