2017-08-09 6 views
3

こんにちは、F2キーを押したときにスクリプトを実行するためのVIMマッピングを作成しようとしています。 vimで編集中のファイルをコマンド・ファンクションにフルパスで渡すのは難しいです。Vimコマンドとマッピング

nnoremap <F2> :! php /home/kbuczynski/diff_re.php fix <full file path here> flagArg 

答えて

5

あなたがして、現在のバッファへのフルパスを取得することができます:

function! CallPHP() 
    execute '!php /home/kbuczynski/diff_re.php fix '.expand('%:p').' flagArg' 
endfunction 
nnoremap <F2> :call CallPHP()<CR> 

Here:あなたのマッピングは、この(あなたもexecute機能を使用する必要があります)のようになります

expand('%:p') 

ファイルパスを扱う上での良い文書です。

+0

ええ、私はこれが動作している見ることができますが、それはいくつかの理由で(「/ホーム/ file.php」)flagArgスクリプト –

+1

を実行しないようになり を拡大する修正/home/kbuczynski/diff_re.php PHPをこれを行います@ KrzysztofBuczynski、gotcha、私は私の答えを更新しました –

+1

大変ありがとうございました それはちょうど期待どおりに動作します –

3

注入する変数が他にない場合は、:executeexpand()は必要ありません。直接%:pを使用できるはずです。あなたはどこか別のflagArgを読むために必要がある場合は

nnoremap <F2> :!php /home/kbuczynski/diff_re.php fix %:p flagArg<cr> 

、よく、あなたは:executeが必要になります。

関連する問題