1

vim の greplace プラグインを使用していますが、検索で括弧をエスケープする方法がわかりません。

Cookie[:parent] を検索したいのですが、試してみました:

:Gsearch cookies[:parent] # returns nothing
:Gsearch cookies\[:parent\] # returns nothing

これをどのように行う必要がありますか?

ありがとう

4

3 に答える 3

2

試す

Gsearch cookies\\\[:parent\\\]

また

Gsearch 'cookies\[:parent\]'

。私が正しく理解していれば、 gets stringによって:grep!呼び出されたシェル(grepprgオプションにデフォルト値があると仮定)、したがって、エスケープは、globの拡張を防ぐためにエスケープするためのものであると考えるシェルによって解釈されます。しかし、シェルによって行われたグロブの後、grepは引数をパターンとして受け取るので、grepに対してもそれをエスケープする必要があります。そのため、ここに3つのバックスラッシュがあります。2つはgrepにバックスラッシュを取得させ、3つ目はグロブの拡張を防ぐためです。:Gsearchgrep -n cookies\[:parent\] /dev/null[

于 2012-04-19T21:12:42.037 に答える
1

:Gsearch cookies\\\[:parent]私のために働きます。

:Gsearch にはパターンに加えてファイル マスクが必要であることを思い出してください。実際には、:Gsearch \\\[:parent] *.php検索するファイルを指定するには、次のようなものを入力する必要があります。

于 2012-04-19T21:55:21.833 に答える
0
:Gsearch cookies\[:parent]

[ は文字クラスの開始であるため、エスケープする必要があります。] は特に特別なものではないので、エスケープする必要はありません。

于 2012-04-19T07:36:33.280 に答える