2 votos

¿Cómo abrir archivos de texto en Vim (iTerm2) haciendo doble clic en sus nombres en el Finder?

Me gustaría abrir ciertos archivos en Vim (iTerm2) cuando hago doble clic en ellos en Finder (similar a esta pregunta )

El siguiente fragmento lo encontré en este sitio web hace la mayor parte del trabajo

on run {input, parameters}

set filename to POSIX path of input

    set cmd to "clear && 'vim' '" & filename & "' && exit"

    tell application "iTerm"
        set newWindow to (create window with default profile)
            tell current session of newWindow
                write text cmd
            end tell
    end tell

end run

Sin embargo, tras abrir un archivo en Vim, se abre otra ventana de iTerm, que pasa a primer plano. Como resultado, tengo que cerrar la ventana extra antes de poder ver el archivo abierto.

¿Es posible modificar el script o cambiar una preferencia en iTerm2 para evitar que se abra la segunda ventana? Idealmente, me gustaría que iTerm abriera una ventana con el perfil por defecto cuando abro manualmente iTerm pero que no abriera una ventana adicional al hacer doble clic en archivos en el Finder.

Intenté cambiar la opción "¿Abrir una ventana al inicio?" en Avanzado a No, pero no hubo diferencia. Aunque esta opción sólo podía solucionar el problema original, tenía que abrir manualmente una ventana cada vez que iniciaba iTerm.

2voto

Matt Puntos 101

He aquí cómo he conseguido solucionar este problema:

on run {input, parameters}

    set filename to POSIX path of input

    set cmd to "clear && 'vim' '" & filename & "' && exit"

    if application "iTerm" is running then
        tell application "iTerm"
            set newWindow to (create window with default profile)
            tell current session of newWindow
                write text cmd
            end tell
        end tell
    else
        activate application "iTerm"
        tell application "iTerm"
            repeat until (exists current window)
                delay 0.1
            end repeat
            set newWindow to current window
            tell current session of newWindow
                write text cmd
            end tell
        end tell
    end if

end run

El script funciona bien sin el repeat en mi máquina más antigua, pero necesita estar presente para que el script funcione en mi mac M1.

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