Mac OS X: how to open vim in terminal when double click on a file

I have defined my own custom vim file type with highlighting etc. I would like to open it using the terminal based vim when I double click on it. I am using mac os x. Any pointers on how to start on this?


Create an Automator Application to run the following 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

Save the automator application. (eg. name it Vim Launcher)

Right click (or control-click) on your custom vim-type file (eg. use .vim as the extension) and under Open With… choose the bottom option Other… and find your Automator Application (eg. Vim Launcher), double-click it.

Boom.


From the five or so minutes I spent playing with it to see if it would I couldn't find a built -in option to do so.

However, you can probably write a simple Applescript that will take the files absolute path and then run vim {path} in a bash shell.


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

I use this AppleScript instead. It activates Terminal.app after (not before!) execution to stop things from acting odd when using Spaces. It also closes the window after Vim exits. Just set Terminal.app to close after clean exits.


I just wanted to add a comment to the accepted answer with the code changes needed to make it work in Yosemite, but since I don't have sufficient reputation couldn't add a comment, and hence attempting to reply via an answer.

The "Open File in Terminal from Finder" script was working fine in Mavericks, but it stopped working after the upgrade to Yosemite. In Yosemite, the code in the accepted answer would work only the first time - meaning when I double click the first file in the Finder, it opens fine, but when I click the subsequent files, they would just open blank new terminal windows (vim won't open) with command prompt.

After going through multiple sites, cobbled together a version that works just fine. I am sure there is a better way to do it, but I have no experience with Applescript and so will leave it to others to suggest any improvements.

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