No creo que lo que me pidas sea fácil de hacer. Creo que las funciones secundarias de cortar y pegar están aisladas en cada aplicación que las admite y probablemente requiera la captura programática de la secuencia de teclas de destino y el procesamiento correspondiente. Esto es algo que probablemente debería escribirse en C y Objective-C , compilado a ejecutable y residente en memoria.
Dicho esto, creo que el acceso directo ^ K solo corta la última línea de texto desde la posición del cursor y la coloca en la mesa de trabajo secundaria . Así que con eso como entendimiento, permítame ofrecer lo siguiente como una solución alternativa .
El siguiente ejemplo AppleScript código , que se muestra a continuación, se utilizará en un Automator servicio , donde se puede asignar un método abreviado de teclado al servicio . Este servicio usará, por ejemplo, ⌃⇧K (Control-Shift-K) y lograr el objetivo del OP. Lo que es para obtener lo que se coloca en el tablero secundario en Terminal , normalmente presionando ⌃K , en el tablero general del sistema también conocido como Portapapeles , aunque presionando, por ejemplo, ⌃⇧K en su lugar.
Lo siguiente fue creado, probado y funciona para mí en macOS High Sierra .
Crear el servicio de automatización ...
En Automator :
-
Archivo > Nuevo o presione: N
- Seleccione Servicio y haga clic en el botón Elegir .
- Configure los ajustes como se muestra en la primera imagen a continuación.
- Agregue una acción Ejecutar AppleScript .
- Reemplace el código predeterminado por el ejemplo AppleScript código .
- Guardar como, por ejemplo: Mi Ctrl-K para Terminal
EjemploAppleScriptcódigo:
tellapplication"Terminal"
if (count windows) is greater than 0 then
try
activate
set c1 to contents of selected tab of front window
tell application "System Events" to ¬
keystroke "k" using control down
delay 0.5
set c2 to contents of selected tab of front window
end try
else
return
end if
end tell
tell current application
set pCount to (count paragraphs of text of c1)
repeat with i from 1 to pCount
if (count characters of (paragraph i of c1)) is greater than 0 then
set t1 to (paragraph i of c1)
set t2 to (paragraph i of c2)
end if
end repeat
if (count characters of t1) is not equal to (count characters of t2) then
set AppleScript's text item delimiters to {t2}
set CtrlY to text items of t1
set AppleScript's text item delimiters to {}
set the clipboard to CtrlY as text
end if
end tell
- Nota: el ejemplo AppleScript código es solo eso y no contiene ningún otro manejo de errores , entonces, ¿qué? puede estar presente. La responsabilidad recae siempre sobre el usuario de emplear manejo de errores según sea necesario y / o deseado.
- El valor del
delay
comando puede o no necesita ser ajustado para su sistema. Ajuste el valor según sea necesario o agregue delay
comandos según sea necesario.
Asignando el método abreviado de teclado ...
En Preferencias del sistema ...
AhoraenTerminal,cuandosepresiona⌃⇧K,apareceráenelPortapapelesque⌃Klugaresenlamesadetrabajosecundaria.
Comonotaalmargen,siusaunprogramacomo FastScripts , solo necesita usar el ejemplo AppleScript código como .scpt en Script Editor , no cree un Automator service y puede asignar el método abreviado de teclado en Preferencias para FastScripts . Ninguna de las otras instrucciones se aplica a menos que desee hacerlo todo de forma nativa sin el uso de software de terceros.
Tenga en cuenta que no estoy afiliado con el desarrollador de FastScripts, solo un usuario satisfecho.