我在vim文件中有以下代码,它是在编辑php文件时自动获取的。但我不能让它发挥作用。
"PHP config
if !exists("g:addPath")
let g:addPath = 1
let $PATH=$PATH.';C:\Program Files\Mozilla Firefox'
endif
function! MakeThisUrl()
let s:url='http://localhost/'
let s:url=s:url. expand('%')
return s:url
endfunction
function! MakeCustomUrl()
let s:url='http://localhost/'
let s:url=s:url. expand('%:p')
return s:url
endfunction
map <F9> :w<CR>:!firefox -new-tab MakeThisUrl()<CR>
map <F10> :!firefox -new-tab call MakeCustomUrl()
imap <F9> <Esc>:w<CR>:!firefox -new-tab MakeThisUrl()<CR><CR>
imap <F10> <Esc>:!firefox -new-tab call MakeCustomUrl()
这个想法是让vim自动生成正确的URL,所以我可以通过预设F9来测试代码。但是,我不能让它执行MakeThisUrl(),我得到它的所有
:!firefox -new-tab MakeThisUrl() <CR><CR>
而不是
:!firefox -new-tab http://localhost/filename.php <CR><CR>
有关如何使其发挥作用的任何想法? 提前致谢
答案 0 :(得分:2)
然而,我不能让它执行MakeThisUrl()而我得到它的所有 :!firefox -new-tab MakeThisUrl()
这不起作用,因为命令的执行方式与键入的一样。试试这个:
map <F9> :up<CR>:execute ":!firefox -new-tab ".MakeThisUrl()<CR>
主要变化:使用:execute
执行由表达式评估产生的命令。表达式评估是在调用函数时。这里的结果与":!firefox -new-tab "
连接在一起,它作为Ex
命令执行(以:
开头的命令; :execute
领先:
是可选的。)
P.S。微小的变化/挑剔:而不是:w
使用:up
(或:update
),只有在修改缓冲区时才会写入缓冲区。