Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

298
Vistas
Códigos de escape ANSI que no mueven el cursor horizontalmente

Estoy tratando de hacer un editor de texto en la terminal con nodo y mecanografiado, pero los códigos de escape ansi no mueven el cursor horizontalmente. El cursor se mueve verticalmente correctamente, pero no se moverá horizontalmente.

Código: (index.ts)

 var width = process.stdout.columns; var height = process.stdout.rows; function dupe(input: string, length: number) { var newI = '' for (var i = 0; i < length; i++) { newI += input } return newI } function pad(pad: string, input: string, width: number): string { var space = '' for (var i = 0; i < width - input.length; i++) { space += pad } return input + space; } var stdin = process.stdin; // without this, we would only get streams once enter is pressed stdin.setRawMode( true ); // resume stdin in the parent process (node app won't quit all by itself // unless an error or process.exit() happens) stdin.resume(); // i don't want binary, do you? stdin.setEncoding( 'utf8' ); // on any data into stdin stdin.on( 'data', function( key ){ // ctrl-c ( end of text ) if ( key.toString() === '\u0003' ) { process.exit(); } // write the key to stdout all normal like update(key.toString()) }); function setpos(x: number, y: number) { return `\x1b[H\x1b[${y}B\x1b[${x}C` } var mousex = 0; var mousey = 0; async function update(key: string) { key = key.toLowerCase(); width = process.stdout.columns; height = process.stdout.rows; console.clear() console.log(dupe('-', width)) for ( var i = 1; i <= height-2; i++ ) { process.stdout.write(`${pad(' ', i.toString(), 3)}|This is a test string\n`) } if (key === 'w') { mousey --;} if (key === 's') { mousey ++;} if (key === 'a') { mousex --;} if (key === 'd') { mousex ++;} if (mousey < 0) { mousey = 0} if (mousey > height) { mousey = height} if (mousex < 0) { mousex = 0 } if (mousex > width) { mousex = width} console.log(setpos(mousex, mousey)) console.log(`\x1b[1A${mousex} ${mousey} ${width} ${height}`) } update('')

desbordamiento de pila, ¿por qué necesito escribir más? Literalmente no tengo nada más que escribir.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No importa, solo fui tonto y no probé un paquete diferente. Instalar terminal-kit solucionó mi problema.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda