Mac OS X: cómo abrir vim en la terminal cuando se hace doble clic en un archivo
19
He definido mi propio tipo de archivo vim personalizado con resaltado, etc. Me gustaría abrirlo usando el vim basado en terminal cuando hago doble clic en él. Estoy usando mac os x. ¿Alguna sugerencia sobre cómo comenzar con esto?
Cree una aplicación de Automator para ejecutar el siguiente AppleScript:
on run {input}
set the_path to POSIX path of input
set cmd to "vim " & quoted form of the_path
tell application "System Events" to set terminalIsRunning to exists application process "Terminal"
tell application "Terminal"
activate
if terminalIsRunning is true then
do script with command cmd
else
do script with command cmd in window 1
end if
end tell
end run
Guarde la aplicación del automatizador. (por ejemplo, llámalo Vim Launcher )
Haga clic derecho (o control-clic) en su archivo de tipo vim personalizado (por ejemplo, use .vim como extensión) y en Abrir con ... elija la opción inferior Otro ... y encuentre su aplicación Automator (por ejemplo, Vim Launcher ), doble- Pinchalo.
Para crear en Automator, puede hacer clic New Document, seleccionar la Applicationplantilla. En la Actions->Librarypestaña, haga clic en Utilities, luego Run AppleScript.
trabaja para mí en Yosemite. sin embargo, hay un caso extraño:
Ilias Karim
1
Esto no parece funcionar con iTerm en 10.12.5
pez remo
1
De los aproximadamente cinco minutos que pasé jugando con él para ver si podía, no pude encontrar una opción integrada para hacerlo.
Sin embargo, probablemente pueda escribir un Applescript simple que tomará la ruta absoluta de los archivos y luego se ejecutará vim {path}en un shell bash.
set the_path to POSIX path of input
set cmd to "vim " & quoted form of the_path & "; exit"
tell application "System Events" to set terminalIsRunning to exists application process "Terminal"
tell application "Terminal"
if terminalIsRunning is true then
do script with command cmd
else
do script with command cmd in window 1
end if
activate
end tell
end run
Yo uso este AppleScript en su lugar. Activa Terminal.app después de la ejecución (¡no antes!) Para evitar que las cosas actúen de manera extraña cuando se usan Espacios. También cierra la ventana después de que Vim sale. Simplemente configure Terminal.app para cerrar después de salidas limpias.
Solo quería agregar un comentario a la respuesta aceptada con los cambios de código necesarios para que funcione en Yosemite, pero como no tengo suficiente reputación no pude agregar un comentario y, por lo tanto, intentar responder a través de una respuesta.
El script "Abrir archivo en terminal desde Finder" funcionaba bien en Mavericks, pero dejó de funcionar después de la actualización a Yosemite. En Yosemite, el código en la respuesta aceptada funcionaría solo la primera vez, lo que significa que cuando hago doble clic en el primer archivo en el Finder, se abre bien, pero cuando hago clic en los archivos posteriores, simplemente abren nuevas ventanas de terminal en blanco (vim no se abrirá) con el símbolo del sistema.
Después de pasar por varios sitios, improvisé una versión que funciona bien. Estoy seguro de que hay una mejor manera de hacerlo, pero no tengo experiencia con Applescript y, por lo tanto, dejaré que otros sugieran mejoras.
on run {input}
set the_path to POSIX path of input
-- set cmd to "vim " & quoted form of the_path
-- we can do a change directory to make NerdTree happy
set cmd to "clear;cd `dirname " & the_path & "`;vim " & quoted form of the_path & "; exit"
tell application "System Events" to set terminalIsRunning to exists application process "Terminal"
tell application "Terminal"
if terminalIsRunning is true then
-- CHANGED code starts --
set newWnd to do script with command cmd
do script with command cmd in newWnd
-- CHANGED code ends --
else
do script with command cmd in window 1
end if
activate
end tell
end run
En un Macbook Pro 2017 con Touchbar, encuentro que la [respuesta aceptada] ( superuser.com/a/139949/44785 ) funciona bien. Pero todavía quiero agregar la línea "cambiar directorio" (cd) para asegurar que pwd esté donde está el archivo. Esto ayuda a NerdTree a mostrar solo los archivos de la carpeta del archivo abierto.
New Document
, seleccionar laApplication
plantilla. En laActions->Library
pestaña, haga clic enUtilities
, luegoRun AppleScript
.De los aproximadamente cinco minutos que pasé jugando con él para ver si podía, no pude encontrar una opción integrada para hacerlo.
Sin embargo, probablemente pueda escribir un Applescript simple que tomará la ruta absoluta de los archivos y luego se ejecutará
vim {path}
en un shell bash.fuente
Yo uso este AppleScript en su lugar. Activa Terminal.app después de la ejecución (¡no antes!) Para evitar que las cosas actúen de manera extraña cuando se usan Espacios. También cierra la ventana después de que Vim sale. Simplemente configure Terminal.app para cerrar después de salidas limpias.
fuente
Solo quería agregar un comentario a la respuesta aceptada con los cambios de código necesarios para que funcione en Yosemite, pero como no tengo suficiente reputación no pude agregar un comentario y, por lo tanto, intentar responder a través de una respuesta.
El script "Abrir archivo en terminal desde Finder" funcionaba bien en Mavericks, pero dejó de funcionar después de la actualización a Yosemite. En Yosemite, el código en la respuesta aceptada funcionaría solo la primera vez, lo que significa que cuando hago doble clic en el primer archivo en el Finder, se abre bien, pero cuando hago clic en los archivos posteriores, simplemente abren nuevas ventanas de terminal en blanco (vim no se abrirá) con el símbolo del sistema.
Después de pasar por varios sitios, improvisé una versión que funciona bien. Estoy seguro de que hay una mejor manera de hacerlo, pero no tengo experiencia con Applescript y, por lo tanto, dejaré que otros sugieran mejoras.
fuente