Открытие MacVim из Applescript - PullRequest
       3

Открытие MacVim из Applescript

3 голосов
/ 21 ноября 2011

Я пытаюсь создать простой Applescript, который активируется каждый раз, когда я нажимаю кнопку на панели инструментов Finder. Этот скрипт открывает MacVim с рабочим каталогом, установленным в каталог, в котором находится Finder. Это так близко, как я получил ...

on run
    tell application "Finder" to get folder of the front window as string
    set workingDir to POSIX path of result
    do shell script "cd \"" & workingDir & "\"; /usr/local/bin/mvim"
end run

Это прекрасно работает (mvim автоматически устанавливает рабочий каталог MacVim на cwd). Однако по какой-то причине это работает только один раз. Это надувные мячи на короткое время, и ничего не происходит, если я нажму кнопку еще раз. Я ожидал получить еще одно пустое окно MacVim - так же, как я снова набрал mvim в терминале.

Как мне получить скрипт для этого?

Ответы [ 2 ]

4 голосов
/ 01 марта 2013

Открывает выбранные файлы / папки в MacVim.
Работает только в том случае, если в Finder выбран один элемент. Работает с несколькими элементами, выбранными в Finder.

Я использовал 'open -a', чтобы преодолеть ограничение скрипта mvim для открытия нескольких файлов на вкладках, как объяснено здесь

on run
    tell application "Finder" to set selectedFiles to selection
    if selectedFiles is {} then return    
    set filePathPosix to ""
    repeat with filePath in selectedFiles
        set filePathPosix to filePathPosix & "'" & POSIX path of (filePath as alias) & "' "
    end repeat
    do shell script "open -a MacVim " & filePathPosix & " > /dev/null 2>&1"
end run
4 голосов
/ 22 ноября 2011

Следующий вызывает beachball, потому что первый не завершен.

Чтобы иметь возможность задавать фон процесса appleScript, он не должен иметь висячих выходных данных, поэтому измените строку do shell script на:

do shell script "cd \"" & workingDir & "\"; /usr/local/bin/mvim > /dev/null 2>&1"

это должно сработать.

...