3 votos

Mojave: Pegar texto con caracteres de control

Yo uso git desde dentro de Terminal.app, y ocasionalmente terminará (particularmente después de una resolución de fusión) con algo como:

$ git status
  ...
  Untracked files:
      foo/bar/baz.orig

Donde el espacio en blanco antes de foo es un carácter de tabulación.

Desde Mojave, copiar y pegar esa línea (que quiero hacer para rm el archivo) resulta en una alerta (completa con un fuerte golpe) pidiéndome que confirme si quiero pegar los desagradables caracteres de control.

Alguien sabe si:

  1. hay una forma de desactivar la alerta y sólo pegar con el control o
  2. hay un atajo de teclado para pegar sin los caracteres de control de control?

Por cierto, tengo entendido que hay otras formas de eliminar el archivo (por ejemplo git status|grep orig$|xargs rm ) y entiendo por qué, en el caso general, querrías limitar el pegado de caracteres de control.

2voto

dushyanth Puntos 499

Actualiza tu sistema operativo a 10.14.1 o posterior

Parece que el Terminal en 10.14 presentaba este diálogo al pegar un carácter de tabulación, pero el Terminal actualizado en 10.14.1 y 10.14.2 no lo hace.

Me preguntaba por qué sólo era capaz de reproducir este problema en una instalación y no en otra. Al no poder encontrar ninguna configuración que tuviera algún impacto, finalmente intenté actualizar la máquina que mostraba el diálogo, y desapareció.

1voto

Baarn Puntos 4579

Así que, ten en cuenta que la ficha El carácter Unicode U+0009 "TABULACIÓN DE CARACTERES" (UTF-8/ASCII hex 09) es simplemente un carácter normal. Uno que es muy molesto de tratar, sí. Pero no es un "carácter de control". Es diferente lo que ocurre cuando se pulsa la tecla de su teclado etiquetada como ficha que puede ser asignado a una secuencia de escape/carácter de control como ' \t ', que es diferente.

El problema específico que encontraste está efectivamente "arreglado" en 10.4.1+. Sin embargo, esto no significa que no vayas a encontrarte con este error o con otros similares.


Por ejemplo, tomemos la secuencia:

printf '\033[34mEscape!\033[00m\n'

Y prueba a copiar/pegar (o su salida) en diferentes shells. También prueba a configurar el ajuste de Terminal.app 'Escapar la entrada no ASCII con Control-V', o a usar control-comando-V, "Pegar texto escapado". Cosas un poco raras, ¿eh?

  1. Dentro de una terminal, su mejor apuesta para la mayoría de las cosas es:
    • En general, Nunca utilices los atajos C y V para acceder al portapapeles.
    • En lugar de ello, diríjase al pbcopy y, a continuación, utilice pbpaste según sea necesario.

Por lo tanto, esto sería git status | pbcopy y para algunos esto podría querer copiar, podría necesitar combinar stderr y stdout: git error 2>&1 | pbcopy resultará en un portapapeles vacío sin 2>&1 .

Esto todavía puede eliminar los caracteres de control adecuados (cualquier cosa que no sea válida en UTF-8). Pero como has mencionado, ya eres consciente de por qué no quieres copiar y pegar estos. Si estás decidido a capturar "caracteres de control" además de texto, de lo que realmente estamos hablando es de capturar un flujo de bytes, así que probablemente sea mejor evitar el portapapeles por completo, que nunca ha tenido la funcionalidad de reproducir secuencias de bytes arbitrarias.


P.D. ¿Has considerado cambiar a iTerm2 ?

0voto

Monomeeth Puntos 139

Yo intentaría conceder a Terminal acceso total al disco en las preferencias del sistema.

Puede hacerlo de la siguiente manera:

  1. Vaya a Apple > Preferencias del Sistema...
  2. Haga clic en Seguridad y Privacidad
  3. Seleccione la pestaña Privacidad
  4. En el panel de la izquierda, seleccione la opción Acceso total al disco
  5. Ahora haga clic en el candado de la parte inferior izquierda de la ventana
  6. Introduzca su contraseña de administrador y haga clic en el botón Unlock botón
  7. Ahora haga clic en el botón + en la parte inferior de la lista de la derecha
  8. Vaya a la aplicación Terminal (normalmente situada en la carpeta Utilidades dentro de la carpeta Aplicaciones) y ábrala ( Nota: Si el Terminal ya se estaba ejecutando, se le pedirá que lo abandone primero)
  9. Acuérdate de volver a cerrar el candado

Ahora prueba a pegar un texto con caracteres de control en el Terminal y verás cómo te va.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X