これを検索して置き換える必要があります:
ExecIf($["${debug}" = "1"]?NoOp
これとともに:
GoSub(chanlog,s,1(1,[${CHANNEL}]
私はvimでそれを行うことができないようです.私が試したことがないので、何をエスケープする必要があるのか わかりません。
多くの句読点文字を含む長い文字列を変更したい場合、それが完全に一致する場合 (それらのいずれも正規表現構文として扱われたくない場合)、nomagic
オプションを使用して、検索パターンをリテラルとして解釈することができます。ストリング。
:set nomagic
:%s/ExecIf($["${debug}" = "1"]?NoOp/GoSub(chanlog,s,1(1,[${CHANNEL}]/
:set magic
区切り文字 (s///
コマンドのスラッシュ) に注意する必要がありますが、そのために任意の文字を使用できます。スラッシュである必要はありません。したがって、このようなものがあり、検索にスラッシュがある場合または文字列を置き換えます。s@foo@bar@
または など、別のものを選択してs:bar:baz:
ください。
vim 置換 ( ) でエスケープする文字に問題がある場合は、概念、特に置換のバージョンを:s//覚えておいてください:または. 意味: 各文字を文字通りに解釈します。nomagic
nomagic
:snomagic//:sno//nomagic
したがって、これは置換で文字をエスケープすることを心配することなく機能するはずです:
:sno/ExecIf($["${debug}" = "1"]?NoOp/GoSub(chanlog,s,1(1, [${CHANNEL}]/
マジックとノーマジックを理解する, :sno//,\vと\V:
:help magic
文字列の検索の nomagic バージョンでは、次を使用し\V
ます。
/\VExecIf($["${debug}" = "1"]?NoOp
[]
およびスペースをエスケープする必要があります。
:s/ExecIf($\["${debug}"\ =\ "1"\]?NoOp/GoSub(chanlog,s,1(1,\[${CHANNEL}\]/
少しだけ試行錯誤