2017-08-09 101 views
3

嗨我想做一個VIM映射來運行腳本時,我按F2。 我很難得到正在用vim編輯的文件的完整路徑到命令函數中。Vim命令和映射

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

任何想法?

回答

5

你可以得到的完整路徑與當前的緩衝區:

expand('%:p') 

你的映射可能看起來像這樣(你還需要使用execute功能):

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

Here是處理文件路徑的一些很好的文檔。

+0

是的,我可以看到這是工作,但它這樣做出於某種原因 PHP /home/kbuczynski/diff_re.php解決擴大(「/家庭/ file.php」)flagArg 這會導致腳本不運行 –

+1

@ KrzysztofBuczynski,gotcha,我更新了我的回答 –

+1

非常感謝 正如預期的那樣工作 –

3

如果您沒有其他變量需要注入,則不需要:executeexpand()。您應該可以直接使用%:p

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

如果你需要閱讀flagArg別的地方,好了,那麼你就需要:execute