key-bindings – Cómo insertar un archivo console.log por palabra debajo del cursor en una nueva línea

Pregunta:

Caso de uso:

En un archivo JS, tengo una expresión como:

if (someVar === 'someValue') {
    statements;
}

y, para fines de depuración, a veces quiero incluir un console.log en la línea anterior:

console.log('someVar:', someVar);
if (someVar === 'someValue') {
    statements;
}

(En funcionamiento) Intento:

Quiero tener algunas combinaciones de teclas para lograr esto, así que intenté:

nnoremap <Leader>L "ayiwOconsole.log(':', );<Esc>2F'"apf "ap

que básicamente tira de la palabra debajo del cursor para registrar a , luego escribe una console.log(':', ); plantilla en la línea de arriba, se mueve a las posiciones deseadas y pega el registro a dos veces.

Funciona, pero se siente algo sucio. ¿Puedes pensar en una forma más elegante de hacer lo mismo?

Respuesta:

Puede utilizar <CR> desde el modo de inserción para insertar el contenido de un registro. De esa manera, puede insertar toda la línea a la vez, incluida la repetición del nombre de la variable.

Por ejemplo:

nnoremap <Leader>L "ayiwOconsole.log('<C-R>a:', <C-R>a);<Esc>

Es posible que desee considerar agregar un mapeo de modo visual también, en cuyo caso puede usarlo también para registrar el valor de una expresión, y no solo una sola variable que coincidirá con una palabra:

xnoremap <Leader>L "ayOconsole.log('<C-R>a:', <C-R>a);<Esc>

Consulte :help i_CTRL-R para obtener más detalles sobre cómo funciona <CR> en el modo de inserción.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım