0

例:

let hits = [] 

:5s/regex-search/\=join(add(hits, submatch(0)))/g

これにより、5 行目のすべての一致がリストに追加されます。

ただし、テキスト内での代用も行います。「 」の後に「 」フラグ
を追加しようとしましたが、リストに一致が追加されません。ng

私の問題を解決する方法はありますか?

4

2 に答える 2

4

もうすぐです。まず、参加する必要はないと思います。次に、add は一致が追加されたリストを返します。したがって、リストの最後の要素を選択して、置き換えられる要素にすることができます。(これにより、何も置き換えられていないように見えます)

s/regex-search/\=add(hits,submatch(0))[-1]/g
于 2013-07-07T17:23:44.493 に答える
1

十分に新しいバージョンの Vim を使用すると、:s コマンドの右側の式がまだ評価されている間に、実際の置換が行われるのを防ぐことができます (そして、元に戻すブランチが台無しになります)。

少なくとも Vim patch Vim patch 7.3.627が必要です。

:s/foobar/\=add(hits, submatch(0))/gn
于 2013-07-08T17:50:19.873 に答える