我希望能够将我当前正在vim
编辑的HTML文件发送到我的网络浏览器Chrome。我正在运行Linux。
这让我非常接近:
nmap <silent> <leader>w :!google-chrome % &
浏览器打开并显示正确的文件。但是,该命令未在后台运行,这是&
应该执行的操作。而vim
落到后台,我得到一些文本输出到我的终端窗口。然后,我必须点击一下,Enter
按下,让我的vim
回到前台。
我错过了什么吗?
更新:感谢您的所有建议。问题似乎是当浏览器窗口打开时,焦点似乎从我的终端窗口移开。不确定我能做些什么。
答案 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