Mac上でVimをGUIアプリのように起動する
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を作成
2. 検索バーからrun
と検索、ダブルクリックでRun Applescriptを右のワークフローに追加
今回は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」を選択でその拡張子のファイルはすべて選択したアプリで起動されます。
おまけ
アプリなんだからアイコンがデフォルトのままは嫌ですね。
これは変更は可能です。最高のアイコンにしちゃいましょう。
- 好きな画像をpngで作ります。常識的に背景は透過にしましょう。
- https://iconverticons.com/online/ でアイコンに変換しダウンロード
- ダウンロードしたファイルを右クリック→「情報を見る」でポップアップ。左上のアイコンを選択しコピー
- アイコンを変えたいアプリを右クリック→「情報を見る」でポップアップ。左上のアイコンを選択し貼り付け。
参考
- https://superuser.com/questions/139352/mac-os-x-how-to-open-vim-in-terminal-when-double-click-on-a-file
- https://qiita.com/ikmski/items/d95a9dab3ab33b311304
Author And Source
この問題について(Mac上でVimをGUIアプリのように起動する), 我々は、より多くの情報をここで見つけました https://qiita.com/evistream/items/fbda12bbc1742dcb3bdb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .