Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Vim的web浏览器中打开当前文件_Vim - Fatal编程技术网

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

在Vim的web浏览器中打开当前文件,vim,Vim,我希望能够将当前在vim中编辑的HTML文件发送到我的web浏览器Chrome。我在运行Linux 这让我非常接近: nmap <silent> <leader>w :!google-chrome % & nmap w:!谷歌浏览器%& 浏览器将打开并显示正确的文件。但是,该命令没有在后台运行,&应该这样做。相反,vim下降到后台,我得到一些文本输出到终端窗口。然后,我必须进行一些单击,然后按Enter键以使我的vim返回前台 我错过什么了吗 更新:感谢所有的

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

这让我非常接近:

nmap <silent> <leader>w :!google-chrome % &
nmap w:!谷歌浏览器%&
浏览器将打开并显示正确的文件。但是,该命令没有在后台运行,
&
应该这样做。相反,
vim
下降到后台,我得到一些文本输出到终端窗口。然后,我必须进行一些单击,然后按Enter键以使我的vim返回前台

我错过什么了吗


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

你可以
exec
chrome
silent
ly:

nmap <silent> <leader>w :exec 'silent !google-chrome % &'
nmap w:exec'静默!谷歌chrome%&'


:exe[cute]{expr1}..
将{expr1}的计算结果作为Ex命令执行

我使用
shell.vim
插件在Windows的后台运行命令。我不知道它到底是做什么的,但我相信它在Linux上也适用:

vim确实允许异步外部命令,但我不知道它是否允许您使用vim终端保持焦点,避免手动返回

下面是另一个允许异步调用的插件,尽管它依赖于使用Python支持编译Vim,但我还没有测试:

来自my.vimrc:

nnoremap <F12>f :exe ':silent !firefox %'<CR>
nnoremap <F12>c :exe ':silent !chromium-browser %'<CR>
nnoremap <F12>o :exe ':silent !opera %'<CR>
nnoremap f:exe':无提示!firefox%'
nnoremap c:exe:无提示!铬浏览器%'
nnoremap o:exe:无提示!歌剧%'
这三个命令在所选浏览器中打开当前文件,不会产生副作用。不过,由于使用了
,因此它仅适用于GVim。

我编写了一个包含7个命令的程序来处理web搜索

安装后,您可以使用:

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

  • :WSearch
    将运行最新保存或搜索的站点,并将
    {WSearch}
    替换为光标词
  • :WSearch Manual Search
    将执行与
    WSearch
    相同的操作,但将用Manual+Search替换
    {WSearch}

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

以下是从Linux、Windows和Mac OS X预览浏览器中文件的各种技巧。

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

 nnoremap <F5> :silent update<Bar>silent !firefox %:p &<CR>
nnoremap:silent updatesilent!firefox%:p&
如果 必要时,保存当前文件,然后使用Firefox打开 文件如果需要,将“firefox”替换为另一个浏览器的名称, 例如“chromium浏览器”

因此,当问题表明Chrome是理想的浏览器时,将其添加到vimrc中:

nnoremap <F5> :silent update<Bar>silent !google-chrome %:p &<CR>
nnoremap:silent updatesilent!谷歌浏览器%:p&

除了回答OP,我还想为那些在搜索Windows和Mac OS X支持时遇到此问题的人共享此链接。

对于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>
nnoremap f:exe':无提示!打开-a/Applications/Firefox.app%'
nnoremap c:exe:无提示!打开-a/Applications/Google\Chrome.app%'
nnoremap g:exe':无提示!打开-a/Applications/Google\Chrome.app%'
nnoremap s:exe':无提示!打开/Applications/Safari.app%'

当然最后是Safari.app,它会为您节省几分钟的时间

呢:!打开适用于windows 7或10的%a Google\Chrome

将这一行放入.vimrc文件:

nnoremap <silent> <F5> :!start file://C:/Users/<your username here>/AppData/Local/Google/Chrome/Application/chrome.exe %:p<CR>
nnoremap:!开始文件://C:/Users//AppData/Local/Google/Chrome/Application/Chrome.exe%:p
或者尝试:

nnoremap <silent> <F5> :!start file://C:/Program Files (x86)\Google\Chrome\Application\chrome.exe %:p<CR>
nnoremap:!开始文件://C:/ProgramFiles(x86)\Google\Chrome\Application\Chrome.exe%:p
有关更多详细信息,请参阅此链接: 对于windows7 x64, -要打开当前文件, -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 
g:chrome\u exe的
[
\'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”
\]
如果!文件可读(g:chrome_exe)
持续
恩迪夫
让g:google\u url='1https://www.google.com/search?oq=&gws_rd=cr&dcr=0&ei=0&q='
:nmap:exe“:!start“.g:chrome\u exe”-用户数据目录=%TEMP%/chrome-vim沙盒文件://”。展开(“%:p”)
:nmap:exe::!start“.g:chrome\u exe”-用户数据目录=%TEMP%/chrome vim sandbox.g:google\u url.expand(“”)
打破
结束

谢谢,但我还是得到了类似的结果。它正在写入标准输出,
在现有浏览器会话中创建了一个新窗口。
我尝试将输出重定向到
/dev/null
,但也没有成功。Grrr。同样的结果<代码>vim有很多方法可以做同样的事情。:)使用
sensible browser
打开默认浏览器怎么样?在OSX上,我注意到
!open%
似乎工作正常,
!如果Chrome或Firefox尚未启动,这会导致Vim或Neovim被卡住,直到您关闭浏览器。这只是要求Vim运行终端命令,不确定是否可以在帮助文件中找到引用。
帮助
help%
实际上,我被这种名称格式“Google\Chrome”搞糊涂了。但是我发现它的名字是这样的“/Applications/Google\Chrome.app/”。我发现这很有用(类似于RTFM的答案):