Mac OS X: как открыть vim в терминале при двойном щелчке по файлу

Я определил мой собственный ВИМ тип файла с подсветкой и т. д. Я хотел бы открыть его с помощью терминала на основе vim, когда я дважды щелкните по нему. Я использую mac os x. Какие-нибудь указания, с чего начать?

4
задан Doug Harris
23.01.2023 21:21 Количество просмотров материала 3220
Распечатать страницу

4 ответа

создайте приложение 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

сохранить приложение automator. (напр. назови его Vim Launcher)

щелкните правой кнопкой мыши (или control-click) на пользовательском файле vim-типа (например. используйте .vim как расширение) и под Открыть С Помощью... выберите нижнюю опцию другой... и найти приложение Automator (например. Vim Launcher), дважды щелкните она.

бум.

16
отвечен ghoppe 2023-01-25 05:09

из пяти или около того минут я провел, играя с ним, чтобы увидеть, если бы я не нашел встроенной функции для этого.

однако, вы, вероятно, можете написать простой Applescript, который возьмет абсолютный путь к файлам, а затем запустит vim {path} в оболочке bash.

1
отвечен Josh K 2023-01-25 07:26
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. Он активирует терминал.app после (не раньше!) выполнение, чтобы предотвратить нечетные действия при использовании пробелов. Он также закрывает окно после выхода Vim. Просто установите терминал.приложение, чтобы закрыть после чистых выходов.

1
отвечен ggustafsson 2023-01-25 09:43

Я просто хотел добавить комментарий к принятому ответу с изменениями кода, необходимыми для его работы в 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
1
отвечен protoiyer 2023-01-25 12:00

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх