Vim命令和映射

时间:2017-08-09 13:09:16

标签: vim

您好我在按F2时尝试制作VIM映射来运行脚本。 我很难将使用vim编辑的文件的完整路径放入命令函数中。

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

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

您可以使用以下命令获取当前缓冲区的完整路径:

expand('%:p')

您的映射可能看起来像这样(您还需要使用execute函数):

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

Here是处理文件路径的一些很好的文档。

答案 1 :(得分:3)

如果您没有其他要注入的变量,则不需要:executeexpand()。您应该可以直接使用%:p

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

如果您需要在其他地方阅读flagArg,那么您需要:execute