【VSCode】Pythonのimport文の順番が勝手に入れ替わらないようにする(editor.formatOnPasteを使用)
304 語
2 分
【VSCode】Pythonのimport文の順番が勝手に入れ替わらないようにする(editor.formatOnPasteを使用)
はじまり

リサちゃん
あーー! なぜだああぁぁぁあああ!!?

135ml
どうしたんだ、急にがなり始めて。

リサちゃん
VSCodeでPythonを書いてたら、勝手にfrom文がフォーマットされてしまうのだよ・・・せっかく、`sys.path.append`したのに・・・

135ml
あららら。その場合は、settings.jsonを編集すると解消できるぞ。今回は、どのフィールドを編集すればよいかを紹介します。

リサちゃん
おっ
問題点
今回、from文を以下のようにペーストした際に、from文の順番が前に移動してしまうためにソースにエラーが発生してしまいました。どうやら、ファイルを保存した際にも、この事象が発生するようです。

せっかく、sys.path.appendしたのに・・・

以下で、僕がこの事象を解消した方法を紹介します。
解消法
"editor.formatOnPaste“と"editor.formatOnSave"のフィールドを黙らせると勝手に順番を入れ替わることはなくなりそうです。
解消前はこのように記述していますが・・・、
settings.json (解消前):
{
...
"[python]": { "editor.tabSize": 4, // "editor.formatOnPaste": false, // "editor.formatOnSave": false }, "editor.formatOnPaste": true, "editor.formatOnSave": true,
...
}解消後のコードは以下のように記述しています。
settings.json (解消後):
{
...
"[python]": { "editor.tabSize": 4, "editor.formatOnPaste": false, "editor.formatOnSave": false }, "editor.formatOnPaste": true, "editor.formatOnSave": true,
...
}解消後の動きはこの様になっています。

補足
ここでも"editor.formatOnPaste“と"editor.formatOnSave"のフィールドをいじれますが、Pythonだけにフォーマットを無効化したい場合は、settings.jsonでないとおそらく編集できません。

おしまい

リサちゃん
は〜、よかった〜、一生 VSCodeが使えなくなるかと思った〜。

135ml
`settings.json`で色々設定をいじれるから、VSCodeの挙動で何か困ったら、いじってみましょ。
以上になります!
記事を共有
この記事が役に立ったなら、ぜひ他の人と共有してください!
【VSCode】Pythonのimport文の順番が勝手に入れ替わらないようにする(editor.formatOnPasteを使用)
https://endorphinbath.com/posts/vscode-setting-python-format-false/ 関連記事 スマート
1
Pythonのタブサイズがどうしても「4」にならない
Software Pythonのタブサイズがどうしても「4」にならなかった。というか、インデントのサイズがどうしても「4」にならなかった。settings.jsonの設定に足らないものがあるのかもしれない。
2
【Python】Pydanticのvalidatorが非推奨だからfield_validatorを使って2段階バリデーションを実装する
Code @validatorはdeprecatedになってるし、@field_validatorにはpreとかalwaysフラグが無いから、from pydantic.functional_validators import field_validatorでインポートしたfield_validatorを使用する方法と、BeforeValidatorとAfterValidatorをAnnotateの中に入れる実装方法を試した。
3
【Python】複数の区切り文字を指定して文字列を配列に分割する
Code Pythonで文字列を配列に分割するスクリプトを掲載します。分割文字は配列で指定するように作っています。
4
【Python】文字列の先頭と末尾にあるスペース、空白文字を削除する
Code Pythonで文字列の先頭と末尾にスペース(空白文字)が混じっていることがあります。そのスペースを削除するスクリプトを掲載します。
5
【Python】pytestで同じディレクトリのモジュールをimportして、"ModuleNotFoundError: No module named"を出さなくする
Code Pythonスクリプトをpytestするとき、"ModuleNotFoundError: No module named"が表示されてしまった場合、この記事の方法でそのエラーが解決するかも。
ランダム記事 ランダム