gpt4 book ai didi

error-handling - Vim 脚本 : How to easily pipe data into the cwindow

转载 作者:行者123 更新时间:2023-12-04 04:34:23 24 4
gpt4 key购买 nike

我使用自定义函数(当前驻留在 .vimrc 中)而不是 :make 或其他直接命令行工具来编译/检查我当前编辑的文件是否有错误。像这样:

function! CompileMyCode(...)
set errorformat=Error:\ %m\\,\ in\ line\ %l
let l:output = "Error: bad code!, in line 9"
return l:output
endfunction
command! -nargs=* CompileMyCode :call CompileMyCode(<f-args>)

在命令模式下使用新命令时,不会出现错误窗口。
:CompileMyCode | cwindow

我究竟做错了什么?

编辑:
我现在尝试了以下也不会打开任何 cwindow 的方法。
function! CompileMyCode(...)
set errorformat=Error:\ %m\\,\ in\ line\ %l
let l:output = "Error: bad code!, in line 9"
" I tried both of the following lines separately
cexpr l:output
call setqflist([l:output])
endfunction

建议命令 cexprsetqflist()在我的例子中没有正确打开 cwindow。也许有人可以提出一个完整的解决方案?

编辑 2:

主要问题解决了。这是我当前的代码:
    let l:result = expand("%").'|8| errortext'
cexpr [ l:result, l:result ]
caddexpr ''
cwindow

此示例遵循 vim 似乎支持的默认错误格式。当 cexpr输入实际的错误输出并使用 errorformat cwindow似乎忽略了这一点。

尽管如此,我还是想在输出中坚持使用默认的错误格式,而不必依赖自定义 errorformat
谢谢你的回答!

最佳答案

我使用 cexpr l:output 做了类似的事情而不是返回字符串并将编译的输出放在quickfix窗口中。你可以在这里看到我的 vim 功能:http://www.zenskg.net/wordpress/?p=199

更新

在 quickfix 列表中添加一个空行似乎允许 cwindow 出现。例如:

function! MyCompile()
let l:output = "Error: line 1"
cexpr l:output
caddexpr ""
cwindow
endfunction

关于error-handling - Vim 脚本 : How to easily pipe data into the cwindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7071682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com