Я определил свой собственный тип файла vim с подсветкой и т. Д. Я хотел бы открыть его, используя vim на основе терминала, когда я дважды щелкаю по нему. Я использую Mac OS X Любые указатели о том, как начать на этом?
Я определил свой собственный тип файла vim с подсветкой и т. Д. Я хотел бы открыть его, используя vim на основе терминала, когда я дважды щелкаю по нему. Я использую Mac OS X Любые указатели о том, как начать на этом?
Ответы:
Создайте приложение Automator для запуска следующего 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
Сохраните приложение автоматизатора. (например, назовите его Vim Launcher )
Щелкните правой кнопкой мыши (или удерживайте нажатой клавишу «Control» ) на своем пользовательском файле типа vim (например, используйте .vim в качестве расширения) и в разделе « Открыть с помощью…» выберите нижний параметр « Другой» и найдите приложение Automator (например, Vim Launcher ), дважды щелкните по нему
Boom.
Из пяти или около того минут, которые я потратил, играя с ним, чтобы посмотреть, получится ли, я не смог найти встроенную опцию для этого.
Тем не менее, вы, вероятно, можете написать простой Applescript, который будет принимать абсолютный путь к файлам, а затем запускаться vim {path}
в оболочке 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
Я использую этот AppleScript вместо этого. Он активирует Terminal.app после (не до!) Выполнения, чтобы мешать вещам вести себя странно при использовании пробелов. Он также закрывает окно после выхода из Vim. Просто установите Terminal.app для закрытия после чистых выходов.
Я просто хотел добавить комментарий к принятому ответу с изменениями кода, необходимыми для его работы в Yosemite, но, поскольку у меня нет достаточной репутации, я не смог добавить комментарий и, следовательно, пытался ответить через ответ.
Сценарий «Открыть файл в терминале из Finder» работал нормально в Mavericks, но он перестал работать после обновления до Yosemite. В Yosemite код в принятом ответе будет работать только в первый раз - это означает, что когда я дважды щелкаю первый файл в Finder, он открывается нормально, но когда я нажимаю на последующие файлы, они просто открывают пустые новые окна терминала (vim не открывается) с командной строкой.
Пройдя по нескольким сайтам, собрал версию, которая отлично работает. Я уверен, что есть лучший способ сделать это, но у меня нет опыта работы с Applescript, и поэтому я оставлю это другим, чтобы предложить какие-либо улучшения.
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
New Document
, выбратьApplication
шаблон. НаActions->Library
вкладке нажмитеUtilities
, затемRun AppleScript
.