GOOGLE ADS

viernes, 22 de abril de 2022

¿Cómo colocar un cursor después de cada N caracteres en VS Code?

Digamos, por ejemplo, que tengo una línea de texto muy larga en una sola línea en VS Code (supongamos que el ejemplo que se da a continuación es muy largo).

0xffffffffeeeeeeee02020202aaaaaaaa

Al principio coloqué el cursor después de los caracteres 0x. (el cursor se indica con el |carácter en el ejemplo a continuación)

0x|ffffffffeeeeeeee02020202aaaaaaaa

Luego quiero agregar más cursores después de cada N caracteres del cursor actual. En este caso, N es igual a 8 y quiero hacer esto dos veces para agregar dos cursores más como en el ejemplo a continuación.

0x|ffffffff|eeeeeeee|02020202aaaaaaaa

Entonces, después de presionar la siguiente secuencia de teclas en el teclado, en este caso, esas secuencias de teclas son ,(space)0x, debería poder obtener este resultado final.

0x, 0x|ffffffff, 0x|eeeeeeee, 0x|02020202aaaaaaaa

Después de anular la selección de los cursores, debería obtener esto

0x, 0xffffffff, 0xeeeeeeee, 0x02020202aaaaaaaa

¿Es esto posible de hacer en el código VS?


Solución del problema

Hay una expresión regular sencilla que puede hacer lo que quieras:

Encontrar:^0x|(.{8})(?!$)

Pero debe habilitar la Find in Selectionopción y activar el Select All Matchescomando usted mismo después de ingresarlo.

O use una extensión de macro como comando múltiple y esta combinación de teclas para automatizarlo:

{
"key": "alt+p",
"command": "extension.multiCommand.execute",
"args": {
"sequence": [
"editor.action.addSelectionToNextFindMatch",
{
"command": "editor.actions.findWithArgs",
"args": {
"findInSelection": true,
"isRegex": true,
"searchString": "^0x|(.{8})(?!$)",
}
},
"editor.action.selectAllMatches",
"cursorRight"
]
},
}

Ahora simplemente coloque el cursor en cualquier lugar o justo después de la palabra que desea dividir y active la macro.

Poner un cursor cada octavo caracter

Aquí está el método regex puro sin extensiones:

  • Ingrese ^0x|(.{8})(?!$)en su Find Widget con la opción regex habilitada.

  • ^0xla primera parte de la cadena en la que finalmente desea un cursor después.

    (.{8})(?!$)seleccione cada bloque de 8 caracteres, pero no el último, es por eso que hay una búsqueda anticipada negativa para el final de la línea (?!$), por lo que los últimos 8 caracteres no coinciden. No se preocupe, habrá un cursor delante de esos últimos 8 caracteres como desee. (.{8})en realidad no necesita estar en un grupo de captura, simplemente es más claro de ver.

  • Seleccione todo el texto para que coincida: 0xffffffffeeeeeeee. Detenga la selección allí, donde quiera que esté el último cursor.


  • Habilite la Find in Selectionopción en el Widget de búsqueda por Alt+ L.


  • Alt+ Enterpara seleccionar todas las coincidencias encontradas respetando la Find in Selectionopción: editor.action.selectHighlights.


  • El paso (4) seleccionará sus coincidencias; debe tener 4 para la cadena anterior. Pero no desea que se seleccionen las coincidencias, solo desea un cursor al comienzo de cada una, así que haga el paso (5):

  • Flecha derecha: esto cancela cada selección con un cursor en el extremo derecho de cada uno.


  • Tipo.


  • cada ocho caracteres expresión regular

    No hay comentarios:

    Publicar un comentario

    Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

    Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...