スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Vim:"-c {command}"でもっとVim充

これは Vim Advent Calendar 2011 の37日目の記事です。

VimとgVim そして、WindowsとLinux(Mac)。
皆さんどういった環境でVim/gVimを起動していますか。
私は最近Vimを選んだばかり(ビアンカかフローラのどちらを選ぶかでビアンカを選ぶように)だったので、まさかこんなにプラグイン(以降「愛」)に溢れているとは知りませんでした。なので、その「愛」の形を常に見れるようにしようというのが今回の話です。
※一つのアプリケーションという意味で「VimShell」や「VimFiler」,「DirDiff」,「calendar-vim」,「VimCalc」などを起動しようと思ったのがキッカケです。

コマンドラインからのVim/gVim起動時の引数として「-c」があります。
:help -c 引用
+{command}						*-+c* *-c*
-c {command} 最初のファイルが読み込まれた後(加えてそのファイルに適応される
autocommandとmodelineが処理された後)に{command}が実行される。
"command"はExコマンドとして解釈される。"command"にスペースを含
んでいる場合には、ダブルクォートで挟まれている必要がある(これ
は使われているシェルに依存する)。例: >
vim "+set si" main.c
vim "+find stdio.h"
vim -c "set ff=dos" -c wq mine.mak

Note: Vimコマンドの引数として"+"か"-c"をあわせ、最大10個まで使
うことができる。これらの引数は与えられた順番で実行される。"-S"
引数は"-c"として同じように数える。
{Vi は一つのコマンドしか許さない}
なので、コマンドラインから
$> vim -c VimShell
と入力すると、VimShellが起動された状態でVimが開きます。
このように+{commnad}/-c {commnad} で一発で起動することができます。
「alias」使えばいいのですが今回は「愛」を見えるようにしたいので省略します。

本題ですが、Windows上でアプリケーションだとアイコンがあって「ダブルクリックで起動」や「開きたいファイルをマウスでもっていき起動」することが多いのではないでしょうか。
ということで、書いたこともないVBScriptを書いてみました。(Webからのコピペ)
例1) vimshell.vbs
Option Explicit
On Error Resume Next

Dim objWshShell     ' WshShell オブジェクト
Dim strEXEC         ' 実行ファイル
Dim strCmdOpt       ' コマンド
Dim strCmdLine      ' 実行するコマンド

strEXEC    = "C:\Program Files\Vim\vim73\gvim.exe" 
strCmdOpt  = "VimShell"
strCmdLine = strEXEC & " -c " & strCmdOpt

' 実行
Set objWshShell = WScript.CreateObject("WScript.Shell")
If Err.Number = 0 Then
    objWshShell.Exec(strCmdLine)
    If Err.Number Then
        WScript.Echo "エラー: " & Err.Description
    End If
Else
    WScript.Echo "エラー: " & Err.Description
End If

Set objWshShell = Nothing

例2) vimdiff.vbs(ここではDirDiffを使っている)
Option Explicit
On Error Resume Next

Dim objWshShell     ' WshShell オブジェクト
Dim strEXEC         ' 実行ファイル
Dim strCmdOpt       ' コマンド
Dim strCmdLine      ' 実行するコマンド

strEXEC   = "C:\Program Files\Vim\vim73\gvim.exe" 
strCmdOpt = "DirDiff"

' 引数取得
Dim tmp
Dim strArg
strArg = ""

For Each tmp In WScript.Arguments
    strArg = strArg & " " & Replace(tmp," ","\ ")
Next

strCmdLine = strEXEC & " -c " & chr(&H22) & strCmdOpt & strArg & chr(&H22)

' 実行部分は前と同じなので省略
これで、実行ファイルができたのですが問題があります。
アイコンが「.vbs」なのです。
これでは何も面白くない!
なのでショートカットを作成し、ショートカットにアイコンを適用すればOK.
Vim信者ならば、アイコンも自分で作りましょう。って言われそうだったので作成。
↓ Vim「D」iffをイメージ。


これをデスクトップ画面に置いていけば「愛」で満たされるのではないでしょうか。


お詫び:本当はもっと「S」や「F」を背景にしたアイコンをいっぱい作ってデスクトップ画面上を埋めるようなことをしたかったのですが、時間がなく出来ませんでした。

こんな感じでデスクトップ画面が Vim一色はアリだと思います。もしくは「XPをMAC OS-X Leopard風スタイルにカスタマイズ!」ようにして、ドックに並べるというのも素敵だと思います。
明日は @wiredool さんです。


補足:
VBSCriptを書かなくても一部は簡単に実現できる方法がありますので、こちらも参照ください。
Vim:"-c {command}"でもっとVim充の補足
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。