如何在vimrc配置中使用firefox运行php文件?

时间:2015-07-05 14:55:51

标签: php firefox vim

我在vimrc配置文件中设置了php命令行模式。

nmap <F5> :!php %

它在PHP命令行模式下按F5键时运行当前的php文件。

现在我想在firefox浏览器中运行当前的php文件,如何映射F6来完成工作?

nnoremap <F6>f :exe ':silent !firefox  "http://127.0.0.1/". "%"'<CR>

按F6键时无法运行。

想想扎克 该命令已更改为 nnoremap f:silent!firefox&#34; http://127.0.0.1/%&#34;

文件test.php是在vim中编辑的,我的文档根目录是/var/www, 什么时候按F6和f,firefox打开。

http://127.0.0.1//var/www/test.php
找不到

在此服务器上找不到请求的网址/var/www/test_equal.php。 Apache / 2.2.22(Debian)服务器在127.0.0.1端口80

现在的问题是如何修复&#34; http://127.0.0.1/%&#34; ,改变

 http://127.0.0.1//var/www/test.php  into   http://127.0.0.1/test.php

此处当前文件为/var/www/test.php(%)。

为什么我的命令无法运行?

 nnoremap <F6>f :silent !firefox -new-window "http://127.0.0.1/"{expand('%:t')}

1 个答案:

答案 0 :(得分:1)

修改:当您不在该目录中时,有时会在vim中创建文件(例如vim /path/to/newfile.php而不是vim newfile.php该目录)可能会更改%的值。在这种情况下,只需使用%:t抓住尾巴。所以试试这个:

nnoremap <silent> <F6>f :!firefox 'http://127.0.0.1/%:t' &<CR>

TL; DR:在Mac上,这样的事情应该有效:

nnoremap <F6>f :silent !/Applications/Firefox.app/Contents/MacOS/firefox -new-window "http://127.0.0.1/<C-R>%" &<CR>

在Linux或Windows上,只需根据需要替换Firefox的路径。

如果您获得http://127.0.0.1//var/www/test.php而不是http://127.0.0.1/test.php,那么您只需要文件名,而不是路径。尝试使用<C-R>%而不是这样(我直接指的是我的firefox安装路径):

nnoremap <F6>f :silent !/Applications/Firefox.app/Contents/MacOS/firefox -new-window "http://127.0.0.1/<C-R>%" &

如果已设置firefox命令,则按原样继续并使用:

nnoremap <F6>f :silent !firefox "http://127.0.0.1/<C-R>%"

当然,这假设您的firefox命令已正确设置。

此外,确保您的文件以文件名保存,否则使用%无法正常工作。

对于某些人来说,使用:silent仍然会将Hit Enter调到contine提示符。如果发生这种情况,请尝试在最后添加&。 E.g:

nnoremap <F6>f :silent !/Applications/Firefox.app/Contents/MacOS/firefox -new-window "http://127.0.0.1/<C-R>%" &

无论哪种方式,这仍然会要求您在最后按Enter键。如果这不是你想要的,那么最后也要添加<CR><ENTER>。像这样:

nnoremap <F6>f :silent !/Applications/Firefox.app/Contents/MacOS/firefox -new-window "http://127.0.0.1/<C-R>%" &<CR>

编辑:似乎有一个相当烦人的问题,如果你在Vim中使用这个键绑定已经运行的firefox进程你得到一个错误,说只有一个版本的Firefox可以运行任何一次。无论您是否使用-new-window-new-tab或两者都使用,都会发生这种情况。似乎an old bug about this was reported back in 2010但我还没有找到更新的东西。我会看看我是否可以找到一个解决方案,而不仅仅是杀死Firefox,如果它已经在运行(这将是令人讨厌的)。