Hacer Ctrl-k en el Terminal copiar en el portapapeles del sistema

4

Me gustaría que lo que sea que "corte" por última vez con Ctrl-k en Terminal esté disponible en mi editor de texto cuando presiono Cmd-v. ¿Es eso posible? ¿O algo cerca?

Actualización con explicación adicional: Ctrl-k está de forma predeterminada en la Terminal "eliminar hasta el final de la línea". Además de eliminarlo, coloca el texto eliminado en el portapapeles de la Terminal (emacs "kill ring") y se puede recuperar con Ctrl-y. Esto es esencialmente un segundo portapapeles separado del portapapeles del sistema. Quiero usar el mismo portapapeles para Terminal y para el resto del sistema, como mi editor de texto.

    
pregunta Thomas David Baker 12.09.2018 - 03:57

1 respuesta

1

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 :

  1. Archivo > Nuevo o presione: N
  2. Seleccione Servicio y haga clic en el botón Elegir .
  3. Configure los ajustes como se muestra en la primera imagen a continuación.
  4. Agregue una acción Ejecutar AppleScript .
  5. Reemplace el código predeterminado por el ejemplo AppleScript código .
  6. 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 ...

  • Preferencias del sistema > Teclado > Accesos directos > Servicios agregue ⌃⇧K (presione Control-Shift-K) a My Ctrl-K para Terminal servicio , como se muestra en la imagen de abajo.

    • Nota: Sin embargo, se ofrece una palabra sobre el acceso directo que asignó ... strongK , como sugerencia. Deberá seleccionar una que no entre en conflicto con Terminal (o cualquier otra). aplicación que se enfoca si se configura servicio en cualquier aplicación ) cuando se presiona. Esto puede requerir una combinación extraña o un combo de cuatro caracteres. ⌃⇧K trabajó para mí en Terminal . YMMV

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.

    
respondido por el user3439894 13.09.2018 - 05:22

Lea otras preguntas en las etiquetas