Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Mac上でVimをGUIアプリのように起動する

$
0
0

Vimビギナーの課題

vimを使い始めたいけど、Finder上でファイルを触ることが多く、そこからTerminal→vim起動だと手間が多く、挫折が多い。手軽に起動できる環境が欲しい。
「Dock上のアイコンクリックでvim起動。テキストファイルをダブルクリックでvim上で開く」などGUIのテキストエディタのように起動したい。

環境

OS X El Capitan 10.11.6
Automator Version 2.6

解決法

Automatorを用いて、Terminal上のVim起動をアプリ化する。

1. Automatorを起動,⌘+Nで新規でAppliationを作成

ファイル名はVimLauncherとかで。
Screen_Shot_2017-10-31_at_02_34_25.png

2. 検索バーからrunと検索、ダブルクリックでRun Applescriptを右のワークフローに追加

Screen_Shot_2017-10-31_at_02_37_29.png
今回はApplescriptでターミナルを起動、スクリプトを実行させますが、これはJavascriptでも記述可能です。こちらで書きたいなら、Run Javascriptをワークフローに追加しましょう(コードはご持参ください)。このコードはmac標準アプリのScript Editorでコーディング、実行できて、試すには良いです。

3. テキストボックスに以下を貼り付け

on run {input}
    if input is {} then
        set cmd to "vim"
    else
        set the_path to POSIX path of input
        set cmd to "vim " & quoted form of the_path
    end if
    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となっていますが、僕はnvimに書き換えneovimを起動しています。最初のif文でinputであるファイルパスが渡されたかどうかを分岐しています。inputがなければ純粋にvimを起動します。tell application "System Events"の意味はよくわからないままのコピペです。

4. 保存してapp化し、/System/Library/Applicationsに追加

5. Dockに追加やテキストファイルのダブルクリックvim起動化

Dockに追加は、appファイルをDockにドラッグで。テキストファイルのダブルクリックvim起動化は、そのテキストファイルを「右クリック→情報を見る」で起動アプリを選択します。「Change All」を選択でその拡張子のファイルはすべて選択したアプリで起動されます。

Screen_Shot_2017-10-31_at_03_38_35.png

おまけ

アプリなんだからアイコンがデフォルトのままは嫌ですね。
これは変更は可能です。最高のアイコンにしちゃいましょう。

Screen_Shot_2017-10-31_at_02_57_32.png

  1. 好きな画像をpngで作ります。常識的に背景は透過にしましょう。
  2. https://iconverticons.com/online/でアイコンに変換しダウンロード
  3. ダウンロードしたファイルを右クリック→「情報を見る」でポップアップ。左上のアイコンを選択しコピー
  4. アイコンを変えたいアプリを右クリック→「情報を見る」でポップアップ。左上のアイコンを選択し貼り付け。

参考

 


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>