Esto es para un archivo .scpt, activado por una combinación de teclado en FastScripts, titulado "Escribir como texto plano de una sola línea".
El código AppleScript toma el texto del portapapeles, elimina todo el formato de texto enriquecido, y luego elimina todos los saltos de línea y sangrías, estableciendo esta nueva cadena en una nueva variable, theClipboardTextWithoutAnyLineBreaksOrFormatting
. Finalmente, quiero que el AppleScript inserte este nuevo texto en el cursor parpadeante.
Pero, no quiero sobrescribir el portapapeles original con esta nueva cadena de texto sin formato. Simplemente quiero que la nueva cadena se escriba en el cursor parpadeante, en todo el sistema y en cualquier aplicación. keystroke
logra exactamente lo que quiero. Sólo es lento.
Aquí está el script:
set theClipboardTextWithoutAnyFormatting to (the clipboard as text)
set AppleScript's text item delimiters to {return & linefeed, return, linefeed, character id 8233, character id 8232}
set theClipboardTextWithoutAnyLineBreaksOrFormatting to text items of (theClipboardTextWithoutAnyFormatting as text)
set AppleScript's text item delimiters to {" "}
tell application "System Events" to keystroke theClipboardTextWithoutAnyLineBreaksOrFormatting
El problema de este método es que si theClipboardTextWithoutAnyLineBreaksOrFormatting
contiene una cadena muy larga, por ejemplo 2.000 caracteres, entonces tardará en escribirse todo el texto, ya que se está haciendo manualmente en tiempo real.
¿Hay una forma mejor?