2017-05-20 33 views
0

文字列zUe * ES33Naのすべての文字列をviの8!fifHsgxに置き換えるにはどうすればよいですか?viで文字列を特殊文字に置き換えるにはどうすればよいですか?

私は、%s/zUe * ES33Na/8!fifHsgx/gを使ってみましたが、代わりのパターンマッチは失敗しました。

私が検索や交換しようとしている「特別な」文字があるので、気分があります。

基本的に、文字を特殊文字としてではなく検索文字として解釈する方法はありますか?

これは、パスワードを含むファイルを編集するためのものです。

AAAAAAのような単純なもので上記の最初の文字列を置換しようとすると私は同じエラーを得た:

:%sの/ zUe * ES33Na/AAAAAA/gで

をので、私は*で感じてきましたエラーが発生します。

私は*をエスケープする必要がありますか、何とか特殊文字を含むものとして引用符で囲んでいると解釈しないようにviに指示することはできますか?

+0

ファイルはテキストかバイナリですか? –

+0

テキストファイルです。 – michaelc35

答えて

2

使用\エスケープ文字

:%s/zUe\*ES33Na/8!fifHsgx/g 
+0

ありがとう!これはうまくいった。私はテキストの周りに引用符を使うことができることを望んでいましたが、これは問題ありません。結構です。次の問題に移ります。 :) – michaelc35

1

はい、それは*です。

Viで検索すると、正規表現が検索されます。これはしばしば普通の文字列(%s/asdf/hjkl)のように見えますが、通常のテキストにしか一致しない正規表現です。 *.のような特殊文字を入力すると、それに応じて動作します。

あなたがしなければならないことは、バックスラッシュでエスケープして通常の文字に変換することです。正規表現で何かを交換しても意味がありませんので、最初の部分だけが正規表現の文字に影響され

%s/zUe\*ES33Na/8!fifHsgx/g

注意。 2番目の部分は、すべての文字を通常の文字のように扱います。

関連する問題