No quiero que iBooks pegue siempre el "Extracto de" de lo que he copiado

30

Leí en iBooks y en algunos otros recursos y recopilé mis notas en EverNote. Cuando copio un texto de iBooks para guardarlo como una nota en alguna otra aplicación externa como EverNote, sigue pegando la información de origen que es tan molesta y tengo que seguir eliminándola después de cada copia y pegado. Por ejemplo:

“To bind this class using Ninject, I specify the value of the constructor parameter using the WithConstructorArgument method in the AddBindings method, as shown in Listing 6-20.”

Excerpt From: Adam Freeman. “Pro ASP.NET MVC 5.” iBooks. https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewBook?id=4CB3769B56E7D2A905C0332D53D7E31D
EricDeSouthPark
fuente
2
No puedes evitar esto. Apple lo programó de esa manera debido a derechos legales y derechos de autor. Así que malas noticias para que necesites acostumbrarte. :-(
konqui
Puede usted puede construir un script de Automator - pero no estoy seguro de si se puede editar texto Copiar + Pegar Proceso ...
bMalum
3
Eso es realmente molesto cuando tienes derecho a copiar frases : '(
Rubens Mariuzzo
1
Vine aquí porque pegar de los ejemplos del libro Swift apesta. Una razón más para obtener literatura de iBooks pero todos los libros de programación en Kindle.
Dirk Bester
2
@konqui Saben que podemos eliminar ese derecho. No es muy inteligente. Es una repetitiva molesta para una tarea básica.
atilkan

Respuestas:

11

Esta publicación de blog da un ejemplo de cómo hacerlo usando un script de Automator con un atajo de teclado.

En Automator, cree un nuevo Servicio que no reciba ninguna entrada. Dale estas tres acciones:

  1. Obtener contenido del portapapeles
  2. Ejecutar script de shell
  3. Copiar al portapapeles

Ponga esto en la acción Ejecutar script de Shell:

# strip out iBooks citation
sed -E -e 's/^[ ]?[0-9]* //g' | sed -E -e 's/“[ ]?[0-9]?[ ]?//g' | sed -E -e 's/”$//g'  | sed -E -e 's/^(Excerpt From).*//g'

Servicio "Eliminar cita de iBooks" en Automator

Después de guardar el servicio, puede asignar un acceso directo a esta acción, como Ien Preferencias del sistema> Teclado> Accesos directos> Servicios. Luego presionas ese acceso directo antes de pegar si quieres deshacerte del texto que iBooks agregó.

Amir Raminfar
fuente
Gracias Amir, super útil, ¡esto me ha estado molestando por años!
GGx - Restablece a Monica Cellio el
¿No es eso realmente muy realmente problemático? ¿Qué sucede si hay una coincidencia de expresiones regulares para alguna otra cosa que copie pegada?
t0mgs
@ t0mgs, entonces simplemente no usa el atajo asignado antes de pegar
Martin
Legítima, supongo. ¡Gracias!
t0mgs
5

Puede usar Keyboard Maestro para activar el siguiente AppleScript:

set original_clipboard to the clipboard
set paragraph_count to count of paragraphs of original_clipboard
-- assuming the last two paragraphs are what you want to strip out--
-- that is, the blank line and the attribution
set new_clipboard to paragraphs 1 thru -2 of original_clipboard as string
set the clipboard to new_clipboard
-- now you can paste

Con Keyboard Maestro, crearía una nueva macro, activada por una combinación de teclas (tal vez Comando-Opción-V), y el primer paso sería "Ejecutar un AppleScript" (en la sección Ejecutar) utilizando el script anterior. El siguiente paso sería "Pegar" (en la sección Portapapeles). Copiaría su texto, luego haría clic donde desee pegarlo, luego presione Comando-Opción-V para pegarlo sin los dos últimos párrafos.

Otros programas macro también funcionarían siempre que sepan cómo ejecutar un AppleScript.

Christian Boyce
fuente
Usé su solución, pero el resultado final incluye comillas. ¿Cómo me deshago de eso para que se eliminen las comillas circundantes?
Michael Jaq
Ni siquiera debería necesitar un programa externo: coloque el AppleScript en un servicio de automatización, luego configure el servicio de automatización en un atajo de teclado.
Wowfunhappy
@MichaelJaq Mi respuesta contiene una macro para Keyboard Maestro que también elimina las comillas.
Rory O'Kane
@MichaelJaq puede usar este método con el script de shell en este hilo y eliminará la cita. Cambie "Ejecutar un AppleScript" a "Ejecutar script de Shell". Este AppleScript no los eliminó, por lo que solo fue un resultado parcial.
MarkBTomlinson
3

He creado una secuencia de comandos para ClipMenu (utilidad del portapapeles macOS) para eliminar información no deseada:

return clipText.replace(/^“/, '').replace(/”\s*Excerpt.*iBooks\.\s?$/, '');

Guardar como /Users/USERNAME/Library/Application Support/ClipMenu/script/action/iBooks.js

Filip Suk
fuente
3

A continuación se detallan los pasos para copiar texto de iBooks:

  1. Resalte los pasajes que desea copiar.
  2. Se abrirá una ventana emergente automáticamente o debe abrir una ventana emergente haciendo clic derecho en los pasajes seleccionados.
  3. Seleccione la opción 'Agregar nota' de la ventana emergente.
  4. El texto seleccionado / resaltado se mostrará en el panel izquierdo.
  5. Haga clic derecho en los pasajes en el panel izquierdo y seleccione la opción 'Copiar'.

He creado un video para mostrar cómo funciona: https://youtu.be/ZQLl_Gl9TMw

¡Feliz codificación!

Renish Dadhaniya
fuente
> El texto seleccionado / resaltado se mostrará en el panel izquierdo. ¿Qué dejó el panel? Esto está mal. No hay paneles de panel izquierdo
Verde
3

Aquí se explica cómo configurar una macro de Keyboard Maestro para eliminar el texto adicional, incluidas las comillas, en el momento en que se copia el texto de iBooks.

Primero, cree un grupo macro llamado "mapeo específico de iBooks" y agregue iBooks dentro de "Disponible en estas aplicaciones". (En versiones más recientes de macOS, la aplicación se llamará Libros en lugar de iBooks).

Grupo "mapeo específico de iBooks" en Keyboard Maestro

Luego cree una macro llamada "Copiar sin cita". Asigne la tecla de acceso rápido C. Dele a la macro las siguientes acciones:

  1. Portapapeles> Copiar
  2. Portapapeles> Buscar y reemplazar
    • Buscar: Portapapeles del sistema
    • para: Expresión regular (mayúsculas y minúsculas)
      • ^“
    • y reemplazar con:
      • (dejar vacío)
  3. Portapapeles> Buscar y reemplazar
    • Buscar: Portapapeles del sistema
    • para: Expresión regular (mayúsculas y minúsculas)
      • ”\s*Excerpt.*Books\.\s?$
    • y reemplazar con:
      • (dejar vacío)

Así se verá en Keyboard Maestro:

Macro "Copiar sin citas" en Keyboard Maestro

Ahora cualquier texto en iBooks copiado usando ese método abreviado de teclado tendrá el texto extra eliminado de ambos extremos.

Rory O'Kane
fuente
Gracias a la respuesta de Filip Suk por las expresiones regulares.
Rory O'Kane
Para aquellos cuyo iBooks fue reemplazado por "Libros", simplemente modifique el último RegEx con”\s*Excerpt.*Books\.\s?$
Tim N.
@TimN. Gracias. Actualicé la respuesta y las capturas de pantalla para usar esa expresión regular, ya que esa expresión regular debería funcionar para ambos nombres de aplicaciones.
Rory O'Kane
1

de la respuesta de Amir Raminfar. esta es una forma si desea copiar directamente sin el Comando C para guardar contenido en el portapapeles.

simplemente cambie el flujo de trabajo que recibe el actual a: "texto" en "Books.app" y deshabilite los contenidos del Portapapeles.

Long Vu
fuente
Bienvenido a Ask Different. Este es un comentario sobre una respuesta anterior y no una respuesta independiente. No debería ser su propia respuesta. Consulte Cómo responder para obtener consejos sobre cómo proporcionar respuestas aquí. - De la opinión
fsb