web-dev-qa-db-ja.com

Vimを正規表現に置き換えると、「E488:末尾の文字」がスローされます

Twitterハンドルのすべてのインスタンスを見つけて、それらの周りにアンカータグをラップしようとしています。

:%s/\(@[\w]\)/<a href="http://www.Twitter.com/\1">\1<\/a>/gc

それは私に与えます:

E488: Trailing characters
23
Brian Dant

/{pattern}の間の区切り文字(あなたの場合は{string})がそれらの1つに含まれている場合、\でエスケープする必要があります。これを回避するためのトリックは、異なる区切り文字を使用することです。 #

:%s#@\(\w\+\)#<a href="http://www.Twitter.com/\1">\0</a>#gc

PS:それが私がすべきだと思うことをするべきなら、あなたのパターンは間違っています。私の訂正を参照してください。

27
Ingo Karkat

私はこの問題を抱えていたので、たとえば次のように略語を含む他の部分からコピーした部分がある.vimrcファイルが見つかるまで、それを解消することはできませんでした。

abbrev gc !php artisan generate:controller

その省略形は検索を台無しにし、通常は次のようなコマンドを置き換えます。

:%s/foo/bar/gc

そのgc!php artisan generate:controllerに展開することにより、ただし、リアルタイムでリアルタイムに実行しません。私が決めた方法は、コマンド履歴を見て(:と上矢印を押すことによって)、

:%s/foo/bar/!php artisan generate:controller

あなたが何をしていても後の文字エラーが発生しているなら、私は中を見るだろう

~/.vimrc

そこで問題を見つけることができるかどうかを確認します。

1
racl101

:%s/\/apps/log_dir/g

ここで、置換する文字列=/appsおよび置換したstring = log_dirを/で見たように、したがって"\/"を使用する必要があります

1
Prem S