vim中的位置列表和quickfix列表有什么区别?
以下是有关quickfix列表和位置列表的文档。 但我不确定实际上有什么不同。 下图显示了位置列表和quickfix列表中的相同内容。 什么时候在vimgrep和lvimgrep中使用一个或另一个?
In Vim the quickfix commands are used more generally to find a list of positions in files.For example, |:vimgrep| finds pattern matches. You can use the positions in a script with the |getqflist()| function. Thus you can do a lot more than the edit/compile/fix cycle! ... ... *location-list* *E776* A location list is similar to a quickfix list and contains a list of positions in files. A location list is associated with a window and each window can have a separate location list. A location list can be associated with only one window. The location list is independent of the quickfix list. ...
UPDATE
我从这里find了以下内容。
These commands all fill a list with the results of their search. "grep" and "vimgrep" fill the "quickfix list", which can be opened with :cw or :copen, and is a list shared between ALL windows. "lgrep" and "lvimgrep" fill the "location list," which is local to the current window, and can be opened with :lw or :lopen. Both of these lists can be used to instantly jump to the matching line in whatever file it occurs in.
所以区别在于quickfix列表的所有窗口和位置列表的本地窗口。 不过,我可以从任何其他窗口打开位置列表。 那么有什么区别?
位置列表位于当前窗口的本地,因此您可以拥有与windows相同的位置列表:30个窗口? 没问题,这是您的30个并发位置列表。
quickfix列表是全球性的,所以你一次不能有多个可用的。 有一些命令允许你用前一个replace当前的quickfix列表,但你不能有两个并发的quickfix列表。
不要将location / quickfix“lists”(数据结构)与位置/ quickfix“windows”(显示这些数据结构内容的窗口)混淆。 “窗口”具有类似的行为,但“列表”则没有。 区别很重要,因为这些窗口并不是与这些列表进行交互的唯一方式:有许多命令允许我们在不打开相关窗口的情况下移动这些列表,并且知道这些列表之间的差异是有效使用这些命令的关键。
动手说明的例子:
-
在
foo.txt
:lvim foo %
为包含foo.txt
的窗口创build一个位置列表。 -
做
:lne
有几次在foo.txt
跳到几个foo
。 -
关注
bar.txt
并执行:lne
。 怎么了? -
现在,执行
:lvim bar %
为包含bar.txt
的窗口创build一个位置列表。 -
做
:lne
几次。 你跳什么比赛? 在哪个缓冲区? 在哪个窗口? -
切换到另一个窗口,并执行
:lne
几次。 怎么了? -
再次切换到
bar.txt
。 什么:lne
做什么? -
现在,执行
:vim bar %
bar.txt
:vim bar %
来创build一个quickfix列表。 -
做
:cn
几次跳到bar.txt
的几个bar
。 -
现在,关注
foo.txt
,做什么:cn
呢?
你跳转到的位置:lne
取决于你所在的窗口,但是你跳到的错误是:cn
总是一样的(直到你用另一个replace当前的quickfix列表)。
这两个列表都有相对明确的angular色IMO:quickfix列表(因此quickfix窗口)通常是相当逻辑地致力于错误和位置列表似乎(对我来说)适合search。