独自のカスタムvimファイルタイプをハイライトなどで定義しました。ダブルクリックすると、ターミナルベースのvimを使用して開きたいと思います。私はmacosxを使用しています。これから始める方法についてのポインタはありますか?
次のアップルスクリプトを実行するAutomatorアプリケーションを作成します。
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)
カスタムvimタイプファイルを右クリック(またはcontrolキーを押しながらクリック)し(たとえば、拡張子として。vimを使用)、Open With…の下のオプションを選択します- その他… Automatorアプリケーション(例:Vim Launcher)を見つけて、ダブルクリックします。
ブーム。
Yosemiteで機能させるために必要なコード変更を加えて、承認された回答にコメントを追加したかったのですが、十分な評判がないためコメントを追加できず、回答を介して返信しようとしました。
「Finderからターミナルでファイルを開く」スクリプトはMavericksでは正常に機能していましたが、ヨセミテへのアップグレード後に機能しなくなりました。ヨセミテでは、受け入れられた回答のコードは最初のみ機能します-つまり、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
5分ほどから、それを試してみて、組み込みのオプションが見つからないかどうかを確認しました。
ただし、ファイルの絶対パスを取得してから、bashシェルでvim {path}
を実行する単純なApplescriptを作成することもできます。
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をアクティブにして、Spacesを使用しているときに奇妙な動作をしないようにします。また、Vimが終了した後にウィンドウを閉じます。クリーンな終了後にTerminal.appを閉じるように設定するだけです。