假设我在Vim中打开了多个文件作为缓冲区.文件有*.cpp,*.h有些是*.xml.我想关闭所有的XML文件:bd *.xml.但是,Vim不允许这样做(E93:不止一场比赛......).
有没有办法做到这一点?
PS我知道:bd file1 file2 file3有效.所以,我可以采用某种评估*.xml到file1.xml file2.xml file3.xml?
我想将输出从cscope重定向到Vim quickfix窗口.胶水部分很容易,但我目前陷入错误格式.以下是cscope输出的示例(cscope -L -1 bar):
Format: "filename scope linenumber sourceline"
Example: "abc.cpp foo 25 bar()"
Run Code Online (Sandbox Code Playgroud)
这意味着在foo()中,在abc.cpp的第25行,调用bar().
efm = %f\ %*[^\ ]\ %l\ %m但工作但范围信息丢失.例如:
Input: "abc.cpp foo 25 bar()" becomes
Output: "abc.cpp |25| bar()"
Run Code Online (Sandbox Code Playgroud)
我想要的是在quickfix窗口中包含范围,如下所示:
Input: "abc.cpp foo 25 bar()" becomes
Output: "abc.cpp |25| bar() inside foo()"
Run Code Online (Sandbox Code Playgroud)
是否可以仅使用errorformat执行此操作,或者是否需要编写脚本来操作输出,然后再将其输送到Vim?
在Vim中,如何将特定regexp匹配的字符串替换为其长度,如下所示:
Regexp ="\ w*"
"你好" - >"5"
"bye" - >"3"
是否可以使用:s或我是否需要编写一些脚本?
最好的祝福