vim映射切换键使JSLint

vim映射切换键使JSLint,vim,Vim,我已经安装了nodejs和jslint,并在ftplugin目录中创建了javascript.vim文件。javascript.vim包含以下行: setlocal makeprg=jslint\ % setlocal errorformat=%f:%l:%c:%m nmap <F5> :w<CR>:make<CR>:cw<CR><CR>:copen<CR> setlocalmakeprg=jslint\% setloc

我已经安装了nodejs和jslint,并在ftplugin目录中创建了javascript.vim文件。javascript.vim包含以下行:

setlocal makeprg=jslint\ %
setlocal errorformat=%f:%l:%c:%m

nmap <F5> :w<CR>:make<CR>:cw<CR><CR>:copen<CR>
setlocalmakeprg=jslint\%
setlocal errorformat=%f:%l:%c:%m
nmap:w:make:cw:copen
这将打开jslint报告错误的快速修复窗口。现在我想在第一个F5运行时使用F5作为切换键,在第二个F5关闭错误窗口时显示错误窗口

我已经为此创建了以下代码

setlocal makeprg=jslint\ %
setlocal errorformat=%f:%l:%c:%m

let s:showMakeWnd = "0"
function! ToggleMake()
    echo "Make Wnd mode: " . s:showMakeWnd

    if s:showMakeWnd == "0"
        execute ":w<CR>:make<CR>:cw<CR>:copen<CR>"
    elseif
        execute ":cclose<CR>"
    endif

    let s:showMakeWnd = (s:showMakeWnd == "0" ? "1" : "0")
endfunction

nmap <F5> :call ToggleMake()<CR>
setlocalmakeprg=jslint\%
setlocal errorformat=%f:%l:%c:%m
让我们:showMakeWnd=“0”
功能!ToggleMake()
回声“使Wnd模式:”。s:做秀
如果s:showMakeWnd==“0”
执行“:w:make:cw:copen”
埃尔塞夫
执行“:cclose”
恩迪夫
设s:showMakeWnd=(s:showMakeWnd=“0”?“1”:“0”)
端功能
nmap:calltogglemake()
但按F5键后,出现以下错误:

"<CR>:make<CR>:cw<CR>:copen<CR>"
Error detected while processing function ToggleMake:
line 10:
"<CR>:make<CR>:cw<CR>:copen<CR>" E212: Can't open file for writing
“:make:cw:copen”
处理功能切换时检测到错误:
第10行:
“:make:cw:copen”E212:无法打开文件进行写入

执行
执行Ex命令。您只需要它来扩展变量,而您并没有这样做,所以

execute ":w<CR>:make<CR>:cw<CR>:copen<CR>"
您需要的语法用于
normal
命令

norm :w<CR>:make<CR>:cw<CR>:copen<CR>
norm:w:make:cw:copen

但是它不必要地更脆弱(我不确定这里的特殊字符;常用的用法是
exe“norm something”
,其中某些东西会得到一些变量替换。

当你点击
并得到错误时,你是否在quickfix窗口中?
norm :w<CR>:make<CR>:cw<CR>:copen<CR>