37

Twitter ハンドルのすべてのインスタンスを見つけて、それらをアンカー タグで囲もうとしています。

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

それは私に与えます:

E488: Trailing characters
4

5 に答える 5

36

との間の区切り文字 (/あなたの場合)がそれらのいずれかに含まれている場合は、. でエスケープする必要があります。これを回避するための秘訣は、別の区切り文字を使用することです。たとえば、次のようになります。{pattern}{string}\#

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

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

于 2013-04-05T19:43:06.973 に答える
3

.vimrc私はこの問題を抱えており、コピーした部分が含まれているファイルに、たとえば次のような略語が含まれていることがわかるまで、それを取り除くことができませんでした。

abbrev gc !php artisan generate:controller

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

:%s/foo/bar/gc

それを に拡張することgcによって!php artisan generate:controller、ただし、その場で/リアルタイムで実行しないことを除きます。私が手がかりを得た方法は、コマンド履歴を調べて(:上向き矢印を押して)見ることでした

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

したがって、何をしても末尾の文字エラーが発生する場合は、内部を調べます

~/.vimrc

そこに問題があるかどうかを確認します。

于 2016-09-07T00:09:57.547 に答える
3

私も同じ問題を抱えていました。

他の区切り文字を使用するだけでは役に立ちませんでした。そこで、さらに

  1. 行を選択しませんでした。

  2. グローバルに g を使用しませんでした。

これだけ

:%s#to_be_replaced#replacement#

仕事をした。「to_be_replaced」のすべての出現箇所を「replacement」に変更しました。

于 2020-07-12T15:26:18.873 に答える