我正在学习HTML,想在vim中编辑一个html文件,
当我完成html文件时,按 F4 以使用firefox或chrome运行它,
如何在我的_vimrc配置文件中写一行来执行此操作?
在我的_vimrc中:
:map <F4> :w !c:\Program Files\Mozilla Firefox\firefox.exe<cr>
:map <F5> :w !firefox<cr>
我已经设置了我的环境路径
c:\ Program Files \ Mozilla Firefox \ firefox.exe
他们都没有跑,我得到can't find command
。
当我将配置行修改为:
:map <F4> :w !"c:\Program Files\Mozilla Firefox\firefox.exe"<cr>
按 F4 可以打开firefox,但是firefox不会打开我当前的编辑html文件。
"c:\Program Files\Mozilla Firefox\firefox.exe" file:\\c:\workspace\test.html
可以打开test.html,如何在我的_vimrc文件中设置它?
答案 0 :(得分:1)
你的映射:
:map <F4> :w !"c:\Program Files\Mozilla Firefox\firefox.exe"<cr>
转换为(英文):“将此文件的内容写入此firefox程序的stdin”,这很可能不是您想要在此处执行的操作。
您想要做的是:
firefox的路径和文件名必须都是shellescape()
才能处理路径名中的可能空格。
此映射应该可以执行您想要的操作:
:map <F4> :w\|exec '!' shellescape("c:/Program Files/Mozilla Firefox/firefox.exe") shellescape(expand(%))<cr>
答案 1 :(得分:1)
答案 2 :(得分:1)
如果您只在控制台中使用vi(m),这将有效,但您必须按Enter键才能返回编辑器中的html文档:
nnoremap <F4> :exe '!"c:\Program Files\Mozilla Firefox\firefox.exe" %'<CR>
如果你正在使用gvim,这将避免输入额外的时间:
nnoremap <F4> :exe ':silent !"c:\Program Files\Mozilla Firefox\firefox.exe" %'<CR>