現在、私はFind All
(Cntrl+Fold_var
、 alt+enternew_var
)、しかしこれは私のコメントと文字列の単語を置き換えます。
この回答 のコメントは PyRefactorプラグイン を提案しました ロープ が必要です。これらのツールのデフォルトは、私の目的には手に負えないもののようです。スタンドアロンのpython Script with Sublime Text3で変数名をリファクタリングしたいだけです。
したがって、次のようなスクリプトで
# Where did my hat go?
hat = 0
print(hat)
print("hat")
hat
変数(文字列やコメントではない)は、ホットキーを押すだけで他の変数に置き換えることができます。特別なプロジェクトフォルダ/構成は必要なく、複数のファイル間で何も変更されていません。残念ながら、 Find Allhat -> llama
は...
# Where did my llama go?
llama = 0
print(llama)
print("llama")
編集:
@Totoの正規表現ソリューションには感謝していますが、まだそれに精通しておらず、より一貫して機能し、覚えやすい方法が必要です。グローバルに定義および記述されたすべての変数(関数呼び出しの引数など)を識別し、単純な検索と置換を可能にするプラグイン(またはプラグインを作成できますか?)はありますか?
(?:^(?<!#).*\K|(<?!"))\bhat\b(?!")
llama
説明:
(?:
^ : beginning of line
(?<!#) : negative lookbehind, zero-length assertion that makes sure we don't have # before
.* : 0 or more any character
\k : forget all we have seen until this position
| : OR
(?<!") : negative lookbehind, zero-length assertion that makes sure we don't have " before
)
\b : Word boundary to not match chat, remove it if you want to match chat also
hat : literally
\b : Word boundary to not match hats, remove it if you want to match hats also
(?!") : negative lookahead, zero-length assertion that makes sure we don't have " after
与えられた:
# Where did my hat go?
hat = 0
chat = 0
print(hat)
print("hat")
print(chat)
与えられた例の結果:
# Where did my hat go?
llama = 0
chat = 0
print(llama)
print("hat")
print(chat)
前: