为什么vim地图功能中chrome打不开html?

2024-01-09

我已经在 vimrc 文件中映射了 F6 和 F7。

:nnoremap <F6>:w<cr> :!start cmd  C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %<CR>

:nnoremap <F7>:w<cr> :exe '!"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" %'<CR>

In CMD ,it works fine for me.

C:\Users\pengsir>"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" g:\\my.html

当我在gvim中打开g:\my.html并进入正常状态时,按F6或F7,为什么我的chrome无法打开my.html?

<!DOCTYPE html>
<html>
<HEAD>
<META CHARSET="UTF-8" />
<TITLE> FIRST WEB</TITLE>
<body>
   it is my first web
</body>
</html>

当我在 GVIM 中按 F6 时,


好吧,让我们一步步解决这个问题:

:nnoremap <F6>:w<cr> :!start cmd  C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %<CR>

首先,lhs 之间缺少空格 (<F6>)和:w...右旋;您当前正在映射组合键<F6>:w<cr>.

:nnoremap <F6> :w<cr> :!start cmd  C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %<CR>

这给了我一个打开的命令提示符,但没有 Chrome。你需要通过/C or /K以便剩余部分作为命令执行;cmd.exe /?告诉你这个。我们先来使用/K能够读取任何错误。

:nnoremap <F6> :w<cr> :!start cmd /K C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %<CR>

我现在得到'C:\Program' is not recognized as an internal or external command, operable program or batch file.;我们需要引用。我们可以手动将路径括在双引号中,但因为您可能想要处理通过以下方式传递的任何文件名%,最好让 Vim 进行引用。为此,我们需要:execute(插入表达式)和shellescape().

另一个毛茸茸的怪癖cmd.exe就是一旦你使用引用,你就需要引用entire再次命令行。 (如果这超出了你的能力范围,请不要觉得愚蠢;微软和 MS-DOS 的兼容性是造成这种混乱的原因。Vim 在该领域也进行了改进;请确保至少使用版本 7.3.800,或者7.4。)

:nnoremap <F6> :w<cr> :execute '!start cmd /K "' shellescape('C:\Program Files (x86)\Google\Chrome\Application\chrome.exe', 1) shellescape(expand('%'), 1) . '"'<CR>

它会在 Chrome 中为我打开当前的 HTML 文件。为了完成最后的工作,只需去掉左边的命令提示符(/C),并连接两个 Ex 命令,替换:w与点播:update:

:nnoremap <F6> :update<Bar>execute '!start cmd /C "' shellescape('C:\Program Files (x86)\Google\Chrome\Application\chrome.exe', 1) shellescape(expand('%'), 1) . '"'<CR>

您可以通过始终传递完整的绝对路径来使其更具弹性:

:nnoremap <F6> :update<Bar>execute '!start cmd /C "' shellescape('C:\Program Files (x86)\Google\Chrome\Application\chrome.exe', 1) shellescape(expand('%:p'), 1) . '"'<CR>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么vim地图功能中chrome打不开html? 的相关文章

随机推荐