我的 $HOME 中有文件
tmp.git.log
:
commit 07f5bbb6a3a112f7b601d6cd1f72ec3f20112920
Author: me
Date: 2024
some
comit
messages
diff --git path/file.end
index e969a7691b..0bf58bcb94 100644
--- removed
+++ added
@@ -1,7 +1,7 @@
- removed
+ added
:key="index"
label
:color="color"
@@ -10,11 +10,13 @@
:class="fontWeight"
等等
我想用更改的开始和结束来填充我的快速修复列表,在行开头用
@@
标记。我尝试执行
:vimgrep /^@@ ~/tmp.git.log
Nvim 的回答是
E682 invalid search pattern or separator
上面的 vimgrep 命令有什么问题?
另外:我可以在未写入的缓冲区中
:vimgrep
,例如非文件?
我想
:read !git show <git-hash>
进入 nvim 以查看某些提交在我的存储库中所做的更改,我不需要保留文件。我知道,有插件,但我想了解 vanilla nvim 在这里可以做什么。
我想在 Neovim 中读取
git show <git-gash>
的结果,并使用 vimgrep 填充快速修复列表。
Vimgrep 无法接受我的搜索
:vimgrep /^@@ ~/tmp.git.log
与
E682
。
如何使用添加/删除的文件块位置填充我的快速修复列表以实现更快的导航?
理想情况下,不要先将 git show 结果保存到临时文件中。
:vimgrep /^@@ ~/tmp.git.log
上面的 vimgrep 命令有什么问题?
您必须用/
和
/
(或一对其他字符)包围您的图案,按照
:help :vimgrep
:
:vimgrep /^@@/ ~/tmp.git.log
^ you forgot this slash
另外:我可以在未写入的缓冲区中
,例如非文件?:vimgrep
不。
:grep
和:vimgrep
都只能用于搜索文件。
在文件中搜索和在缓冲区中搜索的机制不可能完全相同,因为这两个任务位于不同的抽象级别。对于前者,您有非常古老且简单的命令,例如
:vimgrep
,但遗憾的是,后者只有低级命令。
几年前我想出了这个可怕的单行代码,因为我想使用快速修复程序进行缓冲区级搜索,但它只适用于named缓冲区。我想可以使用相同的基本逻辑(从当前缓冲区过滤行),但使用
:help setqflist()
/:help setloclist()
代替。