久しぶりに以前Pythonで書いたコードを開いてみたのですが,なかなかアレなコードだったので,リファクタリング(機能はそのままに,実装方法を改善すること)をすることにしました.
そのときに,名前の一括変更ができず手こずったので,対処法を共有しておきます.(要約はこちら)
Pythonのリファクタリングには,ropeのインストールが必要
Visual Studio Codeには,F2キーを押すことで,コードの中で使われている変数や関数などの名前を,一括して書き換えられる機能があります.
(cf. Refactoring source code in Visual Studio Code # Rename symbol)
これを使って,ある関数の名前を書き換えようと思ったのですが,失敗しました.
どうやら,リファクタリング機能の利用には,ropeというパッケージが必要なようです.「インストールしますか」と聞かれているので,Yesを押して,よしなに実行してもらいましょう.
ちなみに,パッケージのインストールはpip install ***
,アンインストールはpip uninstall ***
です.
(cf. 【Python】pipの使い方 | TASK NOTES ※2015)
あと,もし権限がないとか言われてインストールできなかったら,コマンドプロンプトを管理者権限で開いて,そこで,pip install rope
してください.
Workspaceで開くのも忘れずに!
これで準備ができたはず!そう思ったのですが,F2キーを押し,名前を書き換え,Enter
キーを押しても変化がありません!どうしてでしょうか?(再現VTR)
困ったらGoogle先生に聞きましょう^^「vscode python rename symbol not working」などで調べていると次の情報がヒットしました.
rename does not work · Issue #1260 · Microsoft/vscode-python · GitHub
I slove the problem . the rename does work when the file in workspace .
「ワークスペース」とやらで開いたら動いたそうです.ワークスペースって何だよっと思ったので,「Macの話ならいいや」と,スルーしていた別の記事も見てみます.
python - Visual Studio Code (Mac OS) rename symbol doesn't work - Stack Overflow
I solved the problem by first closing the open folder I was in:
File > Close Folder.
then navigating to a sub folder of .py file I was editing, and opening it. >In my case it was
- Click the little document icon in the upper left of screen
- In the welcome screen, choose "open folder"
- navigate to my desktop folder (where my .py file is)
Now refactoring works as expected
要は「まずはフォルダー単位で開いて,それからファイルを開くと良いぜ」ということらしいです.
Ctrl
+Shift
+E
で,VSCodeのエクスプローラを開いてみると,確かに「NO FOLDER OPENED」となっていますね.
[Open Folder]から,カレントディレクトリ(いま開いているファイルがあるフォルダの階層)を指定しましょう.以下のように,「NO FOLDER OPENED」と書かれていた場所がカレントディレクトリの名前に変わっているはずです.
あとは,開きたいファイルを選択して,F2(Rename Symbol)を実行してみます.
ちゃんと動きました!良かった!
ちなみに,別のフォルダを開くときは,Ctrl
+ K
, O
でもできます.
対処法は意外と単純でしたね.
- ropeのインストール
- ファイル単体ではなく,フォルダ単位で開くこと
これらができていなかったために,Rename Symbol に失敗したようです.
初歩的過ぎて発信されてないのか,検索力が足りないのか,日本語の情報が全然ヒットしなかったので,一連の流れも含めて書き留めておきました.誰かの時短に繋がれば幸いです.
TL;DR
- まずはVSCodeのターミナルを開く(
Ctrl
+@
)→pip install rope
しよう! - Workspaceを開く(
Ctrl
+Shift
+E
→ Open Folder)→ファイルを選択し直そう!