Pego nombres de archivo / etc en Terminal todo el tiempo, y ocasionalmente el contenido del portapapeles no es lo que esperaba.
A menudo, el resultado es varios cientos de líneas de texto (por ejemplo, código fuente) pegadas en el símbolo del sistema, lo que provoca que Dios solo sepa qué maldad.
¿Hay alguna manera de evitar que bash ejecute ciegamente lo que sea que pegue? Desearía que solo pegue el texto, y déjame decidir si quiero ejecutarlo.
Ctrl
lugar deCmd
. Además, sin hacerloset -o emacs
parece usar$EDITOR
. ¡Gracias! esto es perfecto.La solución más simple es probablemente usar un editor de texto como un búfer en el que pueda verificar el contenido y luego copiarlo desde el editor de texto a la Terminal. Si usa TextEdit para esto, probablemente querrá asegurarse de que esté en modo de texto sin formato ( menú Formato → Crear texto sin formato; ⇧⌘T) para evitar problemas como enlaces pegados como enlaces, no URL.
La otra cosa a tener en cuenta es que Bash intentará ejecutar todo lo que precede a un carácter de nueva línea, por lo que si está copiando un bloque de texto, es posible que desee asegurarse de que su selección se detenga después del último carácter, en lugar de incluir el final del línea.
Tu quieres esto:
No esta:
Por supuesto, si está copiando cosas con líneas nuevas dentro del texto ( es decir, varios párrafos), deberá editar manualmente la selección.
fuente
¡También entiendo esto!
Mi solución es pegar usando el administrador de portapapeles de Launchbar , con la tecla de acceso rápido
Cmd+\
. Esto muestra una lista de recortes recientes, lo que me permite obtener una vista previa del resultado antes de pegar: si no veo el contenido que espero, presiono escapar antes de lanzar Cmd. También puedo usar una tecla de flecha para 'ingresar' un recorte de texto, lo que me permite ver el contenido línea por línea.Creo que la mayoría de los lanzadores hacen esto: Alfred (complemento de paquete de energía) y Quicksilver (gratis), por ejemplo.
fuente
Es posible que desee buscar en un administrador de portapapeles. Yo uso uno gratuito y ligero llamado Jumpcut . Me permite mantener varios portapapeles y ver lo que está almacenado en ellos antes de pegar realmente el contenido, todo desde el teclado.
Hay muchos administradores de portapapeles, por lo que si Jumpcut no flota su bote, tal vez otro se ajuste mejor a sus necesidades
fuente
Use pasta entre corchetes .
La pasta entre corchetes es una característica en la que el terminal le dice al shell que pegó algo en lugar de simplemente escribirlo, por lo que el shell no puede ejecutar el comando hasta que presione Intro.
Terminal.app admite esto, pero no todos los terminales lo hacen.
Del mismo modo, tampoco todos los proyectiles lo admiten. La versión de bash que viene con OS X no admite pegado entre corchetes (en el momento de la escritura, es v3.2.57).
Sin embargo, zsh admite pegar entre corchetes:
Zsh es principalmente compatible con bash (incluso los scripts probablemente funcionarán, a menos que use algún tipo de característica realmente oscura), y mejor en muchos aspectos, por ejemplo, ¡incluso tiene edición de comandos de varias líneas!
fuente
Puedes poner este pequeño script de Bash en algún lugar de tu
PATH
:Si pongo estos contenidos,
/usr/local/pbexecute
por ejemplo, y los hago ejecutables, podría ejecutarlos con seguridadpbexecute
desde la línea de comandos, lo que solicitaría mi confirmación antes de ejecutar los contenidos del portapapeles.Un enfoque alternativo es iniciar un editor de texto con el contenido del portapapeles desde el shell y ejecutar automáticamente los contenidos editados al salir. Por ejemplo:
fuente