在Vim的Web浏览器中打开当前文件

时间:2012-01-03 05:05:00

标签: vim

我希望能够将我当前正在vim编辑的HTML文件发送到我的网络浏览器Chrome。我正在运行Linux。

这让我非常接近:

nmap <silent> <leader>w :!google-chrome % &

浏览器打开并显示正确的文件。但是,该命令未在后台运行,这是&应该执行的操作。而vim落到后台,我得到一些文本输出到我的终端窗口。然后,我必须点击一下,Enter按下,让我的vim回到前台。

我错过了什么吗?

更新:感谢您的所有建议。问题似乎是当浏览器窗口打开时,焦点似乎从我的终端窗口移开。不确定我能做些什么。

9 个答案:

答案 0 :(得分:7)

来自我的.vimrc:

nnoremap <F12>f :exe ':silent !firefox %'<CR>
nnoremap <F12>c :exe ':silent !chromium-browser %'<CR>
nnoremap <F12>o :exe ':silent !opera %'<CR>

这三个命令在所选浏览器中打开当前文件,没有副作用。但<F12>的使用仅限GVim。

答案 1 :(得分:2)

您可以exec chrome silent ly:

nmap <silent> <leader>w :exec 'silent !google-chrome % &'

:exe[cute] {expr1} ..执行作为Ex命令评估{expr1}的结果的字符串。

答案 2 :(得分:2)

我使用shell.vim插件在Windows后台运行命令。我不确切知道它的作用,但我相信它在Linux上也适用:

http://www.vim.org/scripts/script.php?script_id=3123

Shell.vim允许异步外部命令,但我不知道它是否允许你保持对Vim终端的关注,避免手动向后移动。

另一个允许异步调用的插件如下,虽然它依赖于使用Python支持编译Vim并且我没有测试过: https://github.com/MarcWeber/vim-addon-background-cmd

答案 3 :(得分:2)

:!open % -a Google\ Chrome怎么样?

答案 4 :(得分:1)

对于Mac,您可能需要输入看起来更像这样的内容:

nnoremap <F12>f :exe ':silent !open -a /Applications/Firefox.app %'<CR>
nnoremap <F12>c :exe ':silent !open -a /Applications/Google\ Chrome.app %'<CR>
nnoremap <F12>g :exe ':silent !open -a /Applications/Google\ Chrome.app %'<CR>
nnoremap <F12>s :exe ':silent !open /Applications/Safari.app %'<CR>

最后请注意 Safari.app ......它会为您节省几分钟时间。 :)

答案 5 :(得分:0)

我写了一个small plugin,其中有7个命令来处理网络搜索。

安装完成后,您可以使用:

  • :WSearchInit在当前文件夹中启动网站存储库
  • :WSearchSaveTagAndSite google www.google.com/search?q={WSearch}保存具有相应标记的网站

然后搜索:

  • :WSearch将运行您最新保存或搜索的网站,将{WSearch}替换为光标字
  • :WSearch Manual Search将与WSearch完全相同,但会将{WSearch}替换为手动+搜索。

我希望它可以帮助您或其他有同样问题的人。

答案 6 :(得分:0)

以下是有关从Linux,Windows和Mac OS X在浏览器中预览文件的各种提示。 Preview current HTML file

  

此映射允许您使用浏览器预览HTML文件   目前正在编辑。

 nnoremap <F5> :silent update<Bar>silent !firefox %:p &<CR>
     

如果   必要时,保存当前文件,然后使用Firefox打开   文件。如果需要,将“firefox”替换为另一个浏览器的名称,   例如“铬浏览器”。

因为问题表明Chrome是所需的浏览器,请将其添加到您的vimrc:

nnoremap <F5> :silent update<Bar>silent !google-chrome %:p &<CR>

除了回答OP之外,我想与那些在寻找Windows和Mac OS X支持时遇到此问题的人分享这个链接。

答案 7 :(得分:0)

对于Windows 7或10,将此行放入.vimrc文件中:

nnoremap <silent> <F5> :!start file://C:/Users/<your username here>/AppData/Local/Google/Chrome/Application/chrome.exe %:p<CR>

或尝试:

nnoremap <silent> <F5> :!start file://C:/Program Files (x86)\Google\Chrome\Application\chrome.exe %:p<CR>

有关详细信息,请参阅此链接: Preview current HTML file

答案 8 :(得分:0)

对于windows7 x64,   - F2打开当前文件,   - F3在光标下查找当前的cword。

for g:chrome_exe in [
    \'C:\Progra~2\Google\Chrome\Application\chrome.exe',
    \'C:\Progra~1\Google\Chrome\Application\chrome.exe',
    \'C:\Progra~1\Google\Chrome\Applic~1\chrome.exe',
    \'C:\Users\'.$USERNAME.'\AppData\Local\Google\Chrome\Application\chrome.exe' 
    \]
    if !filereadable(g:chrome_exe)
        continue
    endif
    let g:google_url='https://www.google.com/search?oq=&gws_rd=cr&dcr=0&ei=0&q='
    :nmap   <F2> :exe ":!start ".g:chrome_exe." --user-data-dir=%TEMP%/chrome-vim-sandbox file:///".expand("%:p")<CR>
    :nmap   <F3> :exe ":!start ".g:chrome_exe." --user-data-dir=%TEMP%/chrome-vim-sandbox ".g:google_url.expand("<cword>")<CR>
    break
endfor