¿Cuál es el método preferible y general para depurar/rastrear los complementos de vim? Supongamos que tengo un complemento bastante sofisticado Foo, que en una tecla presionada F9 abre una nueva ventana con el explorador de archivos y le da la posibilidad de elegir un archivo, después de eso el nombre de archivo se copia en la ventana principal. Me gustaría ver cómo se llama cuando presiono la tecla F9, algún tipo de rastreo de llamadas.Depuración de plugins de Vim con rastreo de llamadas
Respuesta
La mejor manera que he encontrado es utilizar la bandera -V
al iniciar (g) vim. Se puede especificar un nivel de rastreo N
y un nombre de archivo para el registro escrito: se les dará
$ vim -V[N]{filename}
A continuación, los mensajes de seguimiento para cada archivo que proviene. (Consulte :help -V
para obtener más información.)
Arrastrarse por el archivo de registro resultante puede ser doloroso, pero por lo general es bastante informativo. Encuentro que es mejor ver el archivo de registro antes y después del evento desencadenante (presionando <F9>
en su caso) para obtener una imagen de cuándo está sucediendo.
Si ya tiene vim abierto, intente ejecutar el comando manualmente en el depurador integrado de VIM.
1) Descubra lo que hace vim cuando se pulsa la tecla
:map <F-9>
2) Ejecutar el comando asignado manualmente bajo depurador
:debug _mapped_command_
3) En este momento se debe dejar caer en la depurador, por lo
set verbose=20
4) y, por último, pulse n
y la tecla Intro para continuar r Desactivando la secuencia de comandos
En este punto, debería ver un montón de resultados en la pantalla. Puede presionar la barra espaciadora para desplazarse por la pantalla, j/k para moverse por la línea.
Cualquier salida que comience con "Línea #:" es la línea que vim está ejecutando en ese momento.
Para los complementos sofisticados, normalmente la depuración o el seguimiento de línea de comandos no es suficiente.
Puede usar BreakPts para realizar una depuración visual dentro de vim.
Se basa en la depuración remota, por lo que debe depurar una instancia del servidor de vim.
Básicamente:
Terminal 1:
$ vim --servername Foo
...
set breakpoint on any Foo function
do whatever operation which trigger Foo logic
...
Terminal 2:
$ vim
:BreakPts
:BPRemoteServ FOO
:BPDWhere locate (actual debug execution point)
:BPDNext or F12 (next execution line)
:BPDStep or F11 (step inside functions, dictionary functions)
:BPDEvaluate or F8 (if pressed on visual selection evaluates that)
:BPDCont or F5 (continue execution)
ver algunos plugins se cargan dinámicamente por lo que necesita para operar con ellos antes de establecer puntos de interrupción.
Una vez cargado, puede establecer puntos de interrupción de vim conectados con:
:BPFunctions (Show debuggeable fuctions on RemoteServer)
:BPScripts (Show debuggeable scripts on RemoteServer)
:BPPoints (Show defined breakpoints on RemoteServer)
tengo fix/pellizco/evolucionar una gran cantidad de plugins vim gracias a este gran plugin.
- 1. ¿Autoupdate VIM Plugins?
- 2. Dónde usamos declaraciones de depuración/rastreo
- 3. ¿Cuáles son los diferentes plugins de depuración de Ruby para VIM?
- 4. Rastreo y depuración en OCaml
- 5. Favoritos (G) Vim plugins/scripts?
- 6. Rastreo de llamadas al cargar un módulo en Linux
- 7. de depuración mensajes/rastreo mediante ELMAH en aplicación MVC
- 8. ¿Qué plugins de vim están disponibles para Eclipse?
- 9. Depuración de llamadas OutputDebugString en Delphi
- 10. Depuración gist-vim
- 11. Depuración/rastreo dentro de una biblioteca compartida durante el tiempo de ejecución?
- 12. Rastreo de rastreo para un determinado puerto
- 13. depuración de scripts vim y python
- 14. depuración remota embarcadero (sin MVN, no hay plugins)
- 15. depuración "El tamaño máximo de pila de llamadas superado"
- 16. El rastreo de depuración de Node.js parece implicar varios hilos de ejecución: ¿cómo interpretar esto correctamente?
- 17. Ingresando plugins de Eclipse/OSGi
- 18. Cálculo de dependencias de plugins
- 19. generan gráfico de llamadas jerarquía con ctags
- 20. alta velocidad de rastreo
- 21. El rastreo de la pila de llamadas nativa Windbg no tiene sentido
- 22. Daemon de rastreo de mouse
- 23. Consulte la pila de llamadas durante la depuración en Pydev
- 24. Validación de formularios de plugins de Jenkins con Ruby
- 25. Rastreo de Internet
- 26. ¿Cómo puedo enviar el número de línea desde el rastreo de Python a vim?
- 27. Registrar llamadas de servicio WCF con información de parámetro
- 28. Formateo de salida de rastreo
- 29. Integración de plugins de informes de Maven
- 30. Depuración con PyDev 1,5