25 votos

Es allí una manera de hacer que pegar en la Terminal de seguro?

Me pegue nombres de los archivos de/etc en la Terminal todo el tiempo, y en ocasiones el contenido del portapapeles no es lo que yo esperaba.

A menudo, el resultado es de varios cientos de líneas de texto (por ejemplo, el código fuente) pega en el símbolo del sistema, provocando sólo dios sabe lo rudo.

Hay alguna manera de evitar bash desde ciegamente la ejecución de lo que sea que me pegue? Me gustaría que se acaba de pegar el texto, y déjame decidir después si quiero ejecutarlo.

10voto

Asumiendo que usted está utilizando bash: Si activa emacs accesos set -o emacs también se puede usar Emacs para editar la línea de comandos:

  • Escriba Ctrl-XCtrl-E en el símbolo del sistema para iniciar Emacs
  • Pegar y editar el contenido del portapapeles en el buffer de Emacs
  • Utilice Ctrl-XCtrl-C para salir de Emacs y, automáticamente, ejecute el comando(s).

4voto

Ged Byrne Puntos 481

La solución más sencilla es probablemente usar un editor de texto como un buffer donde se puede comprobar el contenido, a continuación copiar desde el editor de texto a la Terminal. Si utiliza el editor de texto para esto, usted probablemente querrá asegurarse de que está en modo de texto sin formato (Formato de menú → Hacer de Texto sin formato; ⇧⌘T) para evitar problemas como los enlaces pegar enlaces, no direcciones Url.

La otra cosa a tener en cuenta es que Bash intentará ejecutar todo lo anterior un carácter de nueva línea, así que si vas a copiar un bloque de texto, es posible que desee asegurarse de que su selección se detiene después de que el último carácter, en lugar de incluir al final de la línea.

Desea que este: selection without newline

No esta: selection with newline

Por supuesto, si usted está copiando cosas con saltos de línea en el texto (es decir, varios párrafos), entonces usted necesitará editar manualmente la selección.

1voto

Scott Puntos 3192

Me sale esto también!

Mi solución es pegar con barra de inicio's gestor de portapapeles, con la tecla de acceso directo Cmd+\. Esto mostrará una lista de recortes de los últimos, lo que me permite previsualizar el resultado antes de pegar: si no veo el contenido que me esperan, me golpeó de escape antes de la liberación de Cmd. También puede utilizar una tecla de flecha para 'entrar' a que se recorte el texto, lo que me permite ver el contenido en línea por línea.

Creo que la mayoría de los lanzadores de hacer esto - Alfred (powerpack addon) y Quicksilver (libre), por ejemplo.

1voto

jobu1324 Puntos 220

Es posible que desee buscar en un gestor de portapapeles. Yo uso libre, de peso ligero uno llamado Jumpcut. Me permite mantener varios portapapeles y ver lo que en ellos se almacenan antes de pegar el contenido, todo desde el teclado.

Hay muchos portapapeles gestores de allí, así que si Jumpcut no flotar el barco, tal vez el otro se ajuste mejor a sus necesidades

0voto

Gerry Puntos 10709

Usted puede poner este pequeño script Bash en algún lugar de su PATH:

#!/bin/bash

read -p "Are you sure you wish to execute \`$(pbpaste)\`? (Y/n) "    
[[ $REPLY =~ ^[Yy]?$  ]] && pbpaste | bash

Si pongo estos contenidos en /usr/local/pbexecute por ejemplo y hacerlo ejecutable, con seguridad podría ejecutar pbexecute desde la línea de comandos, lo que llevaría a mi confirmación antes de ejecutar el contenido del portapapeles.

Un enfoque alternativo es el lanzamiento de un editor de texto con el contenido del portapapeles desde dentro de la shell y ejecutar automáticamente el contenido editado al salir. Por ejemplo:

#!/bin/bash

PBTEMP=$(mktemp -t pbtemp)
pbpaste > $PBTEMP
nano -t $PBTEMP
source $PBTEMP
rm $PBTEMP

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