:%!/path/to/script を使用して、vim テキスト ウィンドウで perl スクリプトを実行できることを知りました。入力するset filter1 = /path/to/script
だけでよい方法はあり:%!filter1
ますか?
2 に答える
cabbrev
次のようなコマンドライン省略形を作成するために使用できます。
:cabbrev filter1 /path/to/script
filter1
タイプの後にスペースが続く場合、に展開され/path/to/script
ます。%!
また、この組み合わせでのみ使用する場合は、略語に the を入れることもできます。
明らかに、このフィルターを頻繁に使用する場合は、このためのキーバインドを作成する方が簡単かもしれません:
map ,f :%!/path/to/script<cr>
,f
これは、フィルターの実行にマップされます...
スクリプトを のどこかに配置することもできます$PATH
。
このscriptname
コマンドは、vim (およびその他のプログラム) でコマンド ラインで使用できるようになりました。
:!scriptname<CR>
明らかに、そのコマンドを頻繁に使用する場合は、~/.vimrc
.
編集
Mac OS X では、すべてのターミナル エミュレータがデフォルトでログイン シェルを使用します。つまり、日常的な端末の使用では、エイリアスを定義したり$PATH
、. このコンテキストでは、まったく役に立ちません。~/.bash_login
~/.profile
~/.bashrc
しかし、MacVim はデフォルトではログイン シェルを使用しません。実際、対話型シェルも使用していません。直接の結果として、デフォルトでは、MacVim は環境変数 ( export FOO='bar'
) を認識できますが、エイリアス ( alias foo='bar'
) またはシェル変数 ( BAZ='foo'
) が に設定されているかどうかに~/.bash_login
関係~/.profile
なく、認識できません~/.bashrc
。
ありがたいことに、Vim のオプションを変更して対話型シェルを使用するだけで済み、次のように で定義されたエイリアスが表示され~/.bashrc
ます。
:set shellcmdflag=-ic
しかし、最終的に と の 2 つの構成ファイルが作成され~/.profile
ます~/.bashrc
。最初に定義されたエイリアスはすべてのターミナル セッションで使用できますが、Vim では使用できません。2 番目に定義されたエイリアスは Vim で使用できますが、通常のターミナル セッションでは表示されません。
-l
解決策の 1 つは、上記のオプションにフラグを追加して、MacVim が対話型ログイン シェルを実行するようにすることです (したがって、 にあるものを利用します~/.profile
)。
別の解決策は、私が数年前に行ったようにsource ~/.profile
することです。~/.bashrc
しかし、@ZyX が彼のコメントで正しく示唆しているように、全体が乱雑になり、おそらくパフォーマンスの問題が発生する可能性があります。
私の意見では、Mac OS X での最善の方法は、おそらくshellcmdflag
デフォルト値のままにして、日常の端末の使用に必要なエイリアス/変数/関数を~/.profile
(そう~/.bashrc
ではないためではない) に置くことです。デフォルトで実行されます)、カスタム スクリプトを$PATH
.