2

find_under_expand( ctrl+d) を編集して、ハイフンでつながれた単語を 1 つの単語と見なしたいと考えています。したがって、 var のすべてのインスタンスを置き換えようとすると、現在はaのような単語の「a」の部分文字列と一致しないはずです。a-b

ここに画像の説明を入力

次のように、現在の選択を正規表現の境界でラップすると想定してfind_under_expandいます。\ba\b

次のようにラップする必要があります。\b(?<!-)a(?!-)\b

find_under_expandコマンドのソースは編集可能ですか? それとも全部書き直さないといけないの?どこから始めればよいかわかりません。

4

1 に答える 1

3

Sublime のコマンドは、いくつかの方法のいずれかで実装されます:マクロとして、プラグインとして、およびコンパイルされたプログラムの一部として内部的に (おそらく C++ として)。デフォルトのマクロとプラグインはPackages/Default、ST2 のディレクトリ (Packagesは を選択したときに開かれるディレクトリPreferences -> Browse Packages...) にあるか、ST3 のファイルに圧縮されており、パッケージ コントロールから入手できるInstalled Packages/Default.sublime-package@skuroda の優れたプラグインを使用して抽出できます。PackageResourceViewerマクロには.sublime-macro拡張機能があり、プラグインは Python で記述されていて.py拡張機能があります。

ST3でパッケージ全体を検索しましたDefaultsが (一般的には ST2 と同じです)、プラグインでコマンド クラスに名前を付けるときの規則であるコマンド or.pyを含むマクロまたはファイルを見つけることができませんでした。したがって、このコマンドは Sublime の内部にあり、おそらく C++ で記述され、実行可能ファイルまたはライブラリにリンクされているのではないかと強く疑っています。find_under_expandFindUnderExpand.dll|.dylib|.so

したがって、否定的な先読み/後読みパターンを調整するために簡単に変更できる既存のファイルがあるようには見えません (それがそのようなものだと思います。私の正規表現は少し錆びています...)。"word_separators"代わりに、設定ファイルの値を読み取る独自のプラグインを最初から実装する必要があります。以前の質問と私自身のテストfind_under_expandから判断すると、現在の実装では実行されていないようです。理論的には、これはそれほど難しくないはずです。ユーザーが検索対象のパターン/正規表現を入力するクイック パネルを開くだけで、一致するものを探して現在のビューを反復処理し、それらを強調表示/選択することができます。

幸運を!

于 2014-06-02T17:55:15.753 に答える