ファイルで検索 - 置換に関する KDevelop 5.x ドキュメント

ファイルで検索 - 置換に関する KDevelop 5.x ドキュメント

ファイルで検索 - 置換ダイアログボックスを使用して、正規表現を使用してファイルを検索して置き換えようとします。開発5.x。これに関する文書はどこにありますか?

検索/置換のためのユーザーインターフェイスは、私が使用した他のIDE(Eclipseなど)とはかなり異なります。

  • 正規表現を入力できる検索テキストボックスの代わりに、パターンテキストボックスとテンプレートテキストボックスがあります。テンプレートテキストボックスにprintf-styleフォーマットオプションがあるようです。
  • 「置換」テキストボックスの代わりに「テンプレートに置き換える」テキストボックスがありますが、ここでもprintf-style 書式設定オプションがあるようです。

KDevelopのドキュメントは次のリンクでリンクされています。KDevelop Wiki、私が見逃していない場合は、それとは何の関係もありません。

文書がない場合は、関連するソースコードへのリンクとその部分の要約で十分です。

ファイル内の検索と置換

答え1

%sは、テンプレートと代替テンプレートフィールドの2つの異なるフィールドを表します。テンプレートフィールドの%sは、パターンフィールドに入力した文字列を表します。 「テンプレートの置換」フィールドの場合は、「テキストの置換:」フィールドに入力した文字列を意味します。これは、検索ボタンをクリックするとIDEの下部に表示される「ファイル内の検索/置換」に表示されます。 「桟橋で。

この領域でさまざまなパターンを作成できます。たとえば、ドキュメントで(ベクトル)を「foobar」に置き換えたいとします。 「パターン」フィールドには引用符なしで「ベクトル」を入力し、「テンプレート」フィールドに引用符なしで「(%s)」を入力し、「代替テンプレート」フィールドに引用符なしで「[」を入力できます。 [検索]をクリックし、拡張機能の[置換テキスト]フィールドに引用符なしで「foobar」と入力し、[置換]ボタンをクリックします。

編集する:

以下はいくつかの追加例/説明です。しかし、私はKdevelop開発者ではなく、ソースコードを見たことがなく、試行錯誤で学んだことを報告するだけです。残念ながら、検索 - 置換機能を完全に理解できませんでした。ファイル機能から。

ここに画像の説明を入力してください。

[検索 - 置換]ダイアログボックス(上記)には、次のフィールドがあります。

  • Pattern:この文字列はあなたが探している文字列です。正規表現をサポートできますが、Regular expressionチェックボックスを選択した場合にのみ可能です。
  • Template: 検索文字列を変更するために使用される正規表現です。 "%s"は入力した文字列への参照ですPattern%s複数回使用できます。Pattern設定が「foo」の場合、Template「%s%s」パターンは「foofoo」に展開されます。その後、KDevelopは左の関連「foofoo」に一致するテキストを検索します。 「%s」を使用する必要はありませんが、使用できる他の特別な「%」参照があるかどうかはわかりません。フィールドの右側には、さまざまな事前定義されたテンプレートを含むドロップダウンメニューがあります。自分で定義できるかどうかわかりません。
  • Replacement template:代替文字列を装飾するために使用されるパターン(正規表現はアクティブではありません)。疑いなく、KDevelopチームはReplacement textフィールドを別のドックに配置することにしました(下の写真を参照)。このフィールドReplacement textに入力する内容は「%s」に展開されます。同様に、「%s」を複数回使用できます。 「%s」を使用する必要はありませんが、使用できる他の特別な「%」参照があるかどうかはわかりません。
  • Regular expressionPattern正規表現が使用可能かどうかを決定します。
  • Case sensitive:大文字と小文字を区別する検索を切り替えます。
  • Location(s):検索と置換が行われる場所を具体化します。右側では、実行したい特定のディレクトリを参照するか、事前定義されたオプションのドロップダウンメニューから選択できます。独自の事前定義が可能かどうかはわかりません。
  • Depth:これが何をしているのか完全にはわかりませんが、Find-Replaceプロジェクトディレクトリの深さを制限するようです。
  • Limit to project filesメニューバーまたは右クリックメニューからファイルから検索/置換にアクセスすると、このオプションは永久に無効になっているように見えます。これは、以下にリストされているパターンを使用してフィルタファイルを検索できるようにするようですFiles。私の考えでは、これがバグである可能性があるため、有効/無効にする必要があります。これを切り替えるには、ファイル内の検索/置換ドックの虫眼鏡を介してファイル内の検索/置換にアクセスする必要があります。画像をご覧ください。ここに画像の説明を入力してください。
  • Files:検索と置換を実行するファイル形式のカンマ区切りリスト。
  • Exclude:検索と置換を実行するときに無視するディレクトリ(プロジェクトルートベース)とファイルのカンマ区切りリスト。

上の画像では、「iomanip」の特定のインスタンスを検索しています。このTemplateモードでは、 '<>'で囲まれ、 'iomanip'の 'i'文字の左側に可変桁数があるインスタンスのみを検索します。では、Replacement template「%s」参照の2つのインスタンスを含む愚かな角括弧パターンを入力しました。各「%s」はDockのフィールドに入力した内容に展開され、Replacement textファイル内の検索 - 置換ダイアログボックスのボタンをクリックするとIDEの下部に表示されます。Search以下を参照してください。

ここに画像の説明を入力してください。

ご覧のとおり、ファイル内の検索/置換ドックがIDEの下部に表示されます。ここでは、フィールドに「IamTheBest」と入力しましたReplacement text。この文字列は、Replacement template前のダイアログボックスのフィールドの「%s」の拡張文字列です。

Templateツリーには、前のダイアログボックスで提供された拡張パターンに一致するヒットリストがあります。<29837489237482374iomanip>とは<iomanip>正しいですが、そうではありません"iomanip"。ツリーで検索および置換プロトコルに含める項目を選択できます。それでは、すべて選択したままにします。ドロップダウンメニューでは、前の検索 - 置換手順から選択できます。ボタンをクリックすると、Replace次のようになります。

ここに画像の説明を入力してください。

以下は、いくつかの追加例/使用例です。

  • 複数の "%s" を使用する方法を示します。 ここに画像の説明を入力してください。 簡単に言うと、左の関連である「foo」の2つのインスタンスを検索し、それをさまざまな愚かな単語で区切られた「Bar」の4つのインスタンスに置き換えます。 12行の単一の「foo」と11行の3番目の「foo」は変更されていません。
  • Template事前定義された「配布」モードの1つを実演します。ここに画像の説明を入力してください。 割り当てコンテキストでは「thisNumber」を「0」にのみ変更しますが、同等コンテキストでは変更しません。

役に立ったことを願っています!

編集2:

文書または少なくともソースコードへのリンクを要求した方法を考慮して、ソースコードにリンクすることにしました。または、KDevelopチームがgithubに投稿した内容は次のとおりです。

ソースコードを見るにはgrep

ファイルの検索/置換機能は、上記のgrepviewプラグインにカプセル化されています。具体的には、grputil.hとgrputil.cppを見てください。ここではTemplate、フィールドに '%s'拡張の代替ロジックを見つけることができますReplacement template

編集3:

このオプションの私の表現はLimit to Project Files正確ではなく、現在のソースコードを調べて、これが何をすべきかを調べています。

編集4:まだプロジェクトの制限を特定していませんが、この検索/置換メニュー(ウィンドウの右上隅にある疑問符)に「これは何ですか?」機能があることに気づきました。クリックすると?その後、いくつかのフィールドをクリックすると、特に検索モードフィールドに関するより有用な情報が表示されます。表示される「これは何ですか?」というテキストです。

下の「正規表現」を選択解除すると、生の文字列として扱われます。これは、すべてのメタ文字がエスケープされることを意味します。

可能なメタ文字は次のとおりです。

。 - すべての文字と一致

^ - 行の先頭に一致します。

$ - 行末と一致

\b - 単語の境界と一致

\ s - 空白文字と一致します。

次の繰り返し演算子があります。

? - 前の項目は最大1回一致します。

* - 前の項目と0回以上一致します。

+ - 前の項目と複数回一致します。

{n} - 前のエントリと正確にn回一致します。

{n,} - 前のエントリとn回以上一致します。

{、n} - 前のエントリと最大n回一致

{n,m} - 前のエントリは最小 n 回、最大 m 回一致します。

また、\n記号を使用して、括弧内のサブ式を逆参照することもできます。

詳細については、www.pcre.orgまたはman pcresyntaxをご覧ください。

関連情報