Pregunta Cree un comando Vim para agregar una declaración de depuración de php


Estoy tratando de crear un comando vim para insertar fácilmente una declaración de depuración en el nombre de la variable debajo del cursor. Al menos me gustaría manejar algunos casos comunes para que no tenga que ser perfecto, pero el siguiente debería funcionar:

$test_var = array($test->get_test_var()) || $test->get_test_var() || $test_var;

Tener el cursor sobre cualquiera de estos nombres de variables y ejecutar el comando debe insertar una línea sobre la llamada con el valor de la expresión dentro. P.ej. coloca el cursor sobre cualquier cosa en '$ test-> get_test_var ()' y luego lo siguiente se inserta arriba en una nueva línea:

print_r($test->get_test_var());

Colocando el cursor sobre 'array ($ test-> get_test_var ()) 'debe insertar lo mismo y no incluir la matriz. Colocarlo sobre la matriz debería hacer esto:

print_r(array($test->get_test_var()));

Y finalmente, colocándolo sobre '$ test_var;' debe insertar lo siguiente (sin incluir el punto y coma):

print_r($test_var);

Obviamente estoy trabajando en esto yo mismo, pero algunos de ustedes podrían tener una idea de cómo hacer esto fácilmente que echaré de menos como un usuario relativamente nuevo de vim.


2


origen


Es bastante fácil de hacer si está dispuesto a seleccionar visualmente el texto que desea insertar (consulte ": ayuda 04.4" y ": modo de ayuda visual") o si el texto es algo que Vim reconoce como un objeto de texto (consulte ": help 04.8 "and": help text-objects "), pero Vim no entiende las expresiones de PHP, por lo que no hay una manera fácil de saber (antes de escribir un analizador de PHP en el script de Vim) seleccionar una variable o expresión de PHP después de colocar el cursor en él como lo desea. - garyjohn


Respuestas:


Si coloca algo como esto en su vimrc, se reemplazará automáticamente% DATE% con el formato:

    iab %DATE% <c-r>=strftime("%a %d %b %Y")

Para cosas más simples, ponga:

    iab br best regards,<CR><CR>Your Name

Esto reemplazará a "br" con los mejores deseos, etc.

Entonces podrías probar algo como:

    iab debugr ...

No estoy seguro si necesita presionar enter para reemplazar, pero inténtelo.


0



Ya se me ocurrió un comando como ese para insertar la fecha (mapa <silencio> <F9>: r! Fecha "+ \% m - \% d - \% Y" <CR> mapa <silencio> <s-F9 >: r! date "+ \% m - \% d - \% Y \% H: \% M: \% S" <CR>) pero creo que publicaste eso por error. - chris.ritsen