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 presioneK
una 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
, entoncescppman
debería manejar la documentación dentro de un búfer de c ++. No probado sin embargo.cppman
es una excelente sugerencia, si tiene instaladas las páginas de manual de C y C ++ (manpages-posix-dev
y loslibstdc++-X.Y-doc
paquetes en los sistemas basados en Debian),man
deberí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
K
la palabra clave se abrirá directamente la página de manual incorporada. Por ejemplo, coloque el cursor sobre laprintf
palabra clave:Ahora presione
K
(mayúscula K) y la página de manual paraprintf
deberí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 tags
y:help ctags
.También puede usar la funcionalidad incorporada "incluir-búsqueda" de Vim: presione
[i
para imprimir la "firma" de la palabra debajo del cursor en la línea de comandos:Ver
:help include-search
.fuente
[i
es raro. Funciona parastdlib.h
yqsort
, pero nocstdlib
ystd::qsort
o simplementeqsort
.<C-w>
significaCTRL-W
cuál es la nomenclatura utilizada en los:help
archivos. Luego puede usar:pc
para 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
K
la 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 GetDoc
comando 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_completion
variable.fuente