VSCodeの使い方(細かいこと編)

Contents

ターミナルでパイソンなどを実行後 〇PS C:\Users\DELL> cd tamu した後に、PSの前に赤い◎や青い●や普通の〇がつきますが何を表してますか?

あー、そこに気づくのはかなり良いところ見てます 👍
それ、**PowerShell自体の標準表示ではなく「拡張されたプロンプト表示」**です。

結論から言うと:

赤い◎/青い●/白い〇 は「今いるフォルダの状態」を一目で示すマーク
多くの場合 Git(バージョン管理)の状態を表しています


まず前提:これはPowerShellの素の表示じゃない

通常の PowerShell はこんな感じです:

PS C:\Users\DELL>

でもあなたの環境では:

  • 色付き

  • 記号付き(〇 ● ◎)

になっている
👉 oh-my-posh / starship / posh-git などが入っています(VS Codeが勝手に用意することもあります)


〇 ● ◎ の正体(いちばん多い意味)

ほぼ確実に Git リポジトリの状態です。

記号 よくある意味
白 / 無色 Git管理外、または変更なし
Git管理下・クリーンな状態
変更あり(未保存・未コミット)

あなたの状況に当てはめると

PS C:\Users\DELL> cd tamu

tamu フォルダに入った瞬間に:

  • 🔵 青い●
    → 「ここは Git 管理されてるフォルダだよ」

  • 🔴 赤い◎
    → 「でもファイルが変更されてるよ」

という 信号機みたいな役割をしてます。


具体例で見ると

① 普通の〇

〇 PS C:\Users\DELL>
  • Gitと無関係な場所

  • ただのフォルダ

② 青い●

● PS C:\Users\DELL\tamu>
  • Gitリポジトリ

  • 変更なし(クリーン)

③ 赤い◎

◎ PS C:\Users\DELL\tamu>
  • Gitリポジトリ

  • 何か変更されたファイルがある

    • .py

    • .ipynb

    • README.md など


「Gitって入れた覚えないけど?」

よくあります 😄
理由は:

  • VS Code を入れた

  • Python開発を始めた

  • Git が裏で自動検出された

👉 自分でコマンド使わなくても表示だけ出ることがあります


無視していい?

✔ 今は完全に無視してOK

  • Python実行には影響なし

  • エラーでも警告でもない

  • ただの「状態表示」

✔ むしろ便利

慣れると:

  • 「あ、変更したままだ」

  • 「ここGit管理されてるな」

が一瞬で分かるようになります。


もし消したくなったら?

消せますが、今は触らなくていいです。

これは:

  • PowerShellプロンプトの見た目

  • 開発者向けの便利装飾

今は
👉「お、なんか状態を教えてくれてる」
くらいでOK。


ひとことでまとめ

  • 〇 ● ◎ は プロンプトの装飾

  • 多くは Gitの状態表示

  • エラーではない

  • Pythonとは無関係

  • 慣れると手放せない

今の流れ(VS Code + Python + ipynb)を進めていくと、
そのマークの意味が自然に腑に落ちますよ

細かいことですが、パイソンのプログラムのフォルダに「src」をよく見かけますが何のことですか?

いいところに目が行ってますね。
それ、かなり“分かってきた人”の視点です 👍

結論から言うと:

src は「ソースコード(実行ロジック)専用フォルダ」
Pythonプログラムの中身置き場


src って何の略?

source(ソース) の略です。

  • 設定

  • データ

  • 実行結果

分離するために使われます。


典型的なフォルダ構成

よく見る形はこれ👇

project/
├─ README.md
├─ src/
│ ├─ main.py
│ ├─ am.py
│ └─ fft.py
├─ notebooks/
│ └─ am_analysis.ipynb
├─ data/
│ └─ input.csv
├─ results/
│ └─ spectrum.png

👉 src = 実行ロジックだけ


なぜわざわざ src に分ける?

① 迷子防止

  • どれが「動くコード」か一目瞭然

② import事故を防ぐ

Pythonは「カレントディレクトリ」を基準に import します。

src/
mylib.py

としておくと、

  • 偶然同名ファイルを拾う

  • パスがぐちゃぐちゃ

を防げます。

srcレイアウトと呼ばれます)


③ プロジェクトが育っても破綻しない

最初:

main.py

3か月後:

どれが本体?
どれが実験?
どれが一時ファイル?

👉 src があると、成長に耐える


Python初心者は必須?

正直に言うと👇

  • 小さな練習コード → 不要

  • 1ファイル完結 → 不要

でも:

  • 複数ファイル

  • ipynb + py 混在

  • 後で見返す

👉 ここから必要になる

今のあなたは、ちょうど境目です。


あなた向けおすすめ構成(現実的)

今やっている AM / FFT なら:

am_project/
├─ README.md
├─ src/
│ ├─ signal.py # 波形生成
│ ├─ modulation.py # AM / FM
│ └─ fft_utils.py
├─ notebooks/
│ └─ am_fft.ipynb

notebook では:

from src.modulation import am

注意点(ハマりどころ)

src を使うと:

  • import でエラーが出やすい

  • __init__.py が必要な場合あり

でもこれは
**「Pythonの構造を理解する良い通過点」**です。


ひとことでまとめ

  • src = ソースコード置き場

  • 規則ではないが「事実上の標準」

  • 大きくなる前に入れると楽

  • 今のあなたのレベルなら 使い始めてOK

この次に自然につながる話題は

  • __init__.py の意味

  • from src import ... が動く仕組み

  • notebookからsrcを読む作法

VSCodeのエクスプローラのフォルダの一つの表示が赤くなりましたが?

いいところに気づきました 👍
それ、VS Code が「変化が起きているよ」と教えてくれているサインです。エラーではありません。


フォルダ名が赤くなる正体

ほぼ確実にこれです👇

Git(バージョン管理)が有効で、
そのフォルダ内に「変更・未保存・未登録のファイル」がある

VS Code のエクスプローラは、Git 状態を色で表示します。


色の意味(基本)

🔴 赤

  • 変更されたファイルがある

  • まだ Git に記録(commit)されていない

今回だと:

  • 新しく作った .ipynb

  • 編集した .py

  • 自動生成されたファイル

が原因のことが多いです。


よくある具体例(今回の流れ的に)

  • AM / FM の .ipynb を作成・編集

  • 実行して内容が変わった

  • VS Code が
    「前と違うよ?」
    と教えてくれている

👉 健全な状態です。


中を確認する方法(おすすめ)

  1. 左のアイコン列で
    🗂 → 🧾(枝分かれみたいなアイコン)
    👉 ソース管理

  2. そこに

    • 変更されたファイル名

    • M(Modified)

    • U(Untracked)

が一覧で出ます。


何かしないとダメ?

結論:今は何もしなくてOK

  • 勉強・実験中なら放置で問題なし

  • Git を使う予定がなければ無視してOK


もし色を消したい場合(2択)

方法①:Git を使わない

そのフォルダを Git 管理しない

→ 色は自然に消えます(別フォルダで作業)

方法②:Git に記録する(将来向け)

変更を commit する

VS Code なら:

  1. ソース管理

  2. メッセージ入力

  3. ✔ Commit


超重要な安心ポイント

  • ❌ 壊れた

  • ❌ エラー

  • ❌ 実行失敗

全部違います。

👉
「ちゃんと作業してる証拠」
だと思ってください。


まとめ

  • 赤い表示 = Git が「変更あり」と教えている

  • 今回は正常・問題なし

  • ipynb 実験との相性も良い機能

VS Code はこうやって
黙って見守ってくれる相棒
みたいな存在です。

VS Codeでターミナルの表示/非表示

正しくは 「Ctrl + (バッククォート)`」ですが、日本語キーボードの環境では 「Ctrl + @」が正しく動作しています。


なぜ「Ctrl + @」で動くのか?

これは キーボード配列とOS設定の違いによるものです。

日本語キーボード(JIS配列)では

  • @`(バッククォート)が
    同じキーに割り当てられている 場合があります

  • 表示は「@」でも、
    VS Code には「`(バッククォート)」として認識されている

👉 そのため
Ctrl + @ = Ctrl + ` と同じ動作になります。


つまり何が起きているかというと

見た目 実際のキーコード 結果
Ctrl + @ Ctrl + ` ターミナル表示
Ctrl + ` Ctrl + ` ターミナル表示

VS Code 側は
👉 キーの「印字」ではなく「物理キー位置」を見ています


どちらが正しいの?

👉 **「自分の環境で動く方が正解」**です。

  • あなたのキーボード
    Ctrl + @ が正解

  • 別の人のキーボード
    → Ctrl + ` になることもある

これは バグでも設定ミスでもありません


確認したい場合(上級)

VS Code でCtrl + Shift + P

Keyboard Shortcuts (JSON)

ここで
toggle terminal を見ると
実際に割り当てられているキーが確認できます。


まとめ(安心ポイント)

  • Ctrl + @ でターミナルが開く → 正常

  • 日本語キーボードではよくある挙動

  • VS Code は「キー配置基準」で動く

  • 無理に直す必要なし

編集中にprint(‘こんにちは、Python!’)の!が黄色の四角い枠で囲まれていました。

黄色の四角い枠で囲まれた文字(編集時)

結論から言うと――

👉 エラーではありません。Pythonの警告でもありません。

黄色い四角い枠「!」の正体

これは VS Code の表示補助(Unicode / 全角・記号の可視化) です。

今回の場合
print(‘こんにちは、Python!’)
この 「!」

  • 黄色い四角い枠で囲まれていた

  • カーソルを近づけると強調される

という状態なら、ほぼ間違いなく👇


原因:全角ビックリマーク(!)

実はこの「!」、半角 ! ではなく 全角 になっています。

種類 見た目 中身
半角 ! ASCII
全角 Unicode

Pythonでは 文字列の中なので問題なし
👉 でも エディタが「注意してね」と教えてくれている

なぜVS Codeは強調表示するの?

理由はこれです👇

全角記号はコード中で使うとバグの原因になりやすい
特にファイル名、演算子、変数名
に入ると見た目は同じで動かないことがある

なので VS Code は「これ、Unicode文字だよ」と教えてくれています。

確認方法(超かんたん)

① カーソルを「!」に乗せる
② 右下 or ツールチップを見る

表示例:Fullwidth Exclamation Mark (U+FF01)

消したい場合(おすすめ)

半角に打ち直す
を削除
半角 ! を入力

print('こんにちは、Python!')

これで黄色枠は消えます 👍

表示自体を消したい場合(上級)

VS Code 設定で:

  • editor.unicodeHighlight.nonBasicASCIIfalse

ただし
👉 初心者のうちは ON 推奨
(トラブル予防になります)

重要ポイント

  • ✅ 実行エラーではない

  • ✅ Python的にも問題なし

  • ⚠ 将来バグの種になる可能性がある

  • 🧠 VS Codeの「親切警告」


もし今後、変数名が動かないファイル名があるのに見つからない…みたいなときは
全角文字チェックを思い出してください

VSCodeで編集時 print(1+2) の下の行に勝手に print(3+4) が薄く表示。(インライン提案)

なかなか消せなかったが、取り消す方法は?なぜこんな補助が出るのか?
ありますあります、それ 😊
VS Code の「ゴーストテキスト(インライン提案)」が出ている状態です。

結論から言うと:

  • 消し方:Esc キー

  • 原因:AI/補完機能が「次に書きそうなコード」を予測して出している


なぜ薄い print(3+4) が勝手に出るの?

これは 実際のコードではありません
VS Code が

「あ、次はこう書きたいんじゃない?」

と予測して薄く表示している提案です。

主な正体はこのどれか👇

  • Copilot

  • IntelliSense(コード補完)

  • Python 拡張の補完機能

print(1+2) を書いたので
👉「次も計算式の print だろう」と推測して
print(3+4) を出した、というわけです。


今すぐ消す方法(超重要)

一時的に消す
Esc
これで その場の薄い文字だけ消えます

採用する場合
Tab
押すと、実コードとして確定します。


もう出したくない場合(恒久対策)

方法A:Copilot を使っている場合

  1. 左の拡張機能(四角いアイコン)

  2. GitHub Copilot

  3. 無効化(Disable)

方法B:インライン補完をオフにする(おすすめ)

設定画面を開く
Ctrl + ,
検索欄に:inline suggest

「Editor: Inline Suggest」
→ チェックを外す ❌

これで 薄い文字は一切出なくなります


なぜ「なかなか消えなかった」のか?

これはバグではなく仕様で、

  • Backspace → 消えない

  • Delete → 消えない

なぜなら「まだ入力されていない文字」だからです。

だから
👉 Esc でキャンセル
👉 Tab で採用

この2択しかありません。

初心者のうちはオフでOK?

👉 今はオフで全然OKです。むしろその方が理解が深まります。
補完は、文法に慣れてから「楽をしたい」と思った時で十分です。

まとめ

状態 操作
薄い文字を消したい Esc
そのまま使いたい Tab
もう出したくない Inline Suggest をオフ

オートインデントはなぜ勝手に入るのか?

例 

for i in range(3):
    print(i)

理由(核心)

Python では、

「:(コロン)」の次は必ずインデントされたブロック

というルールがあるからです。

VS Code は
: を見た瞬間にこう判断します👇

「あ、次の行は字下げ必須だな」

その結果…

  • Enter を押す

  • 自動で スペース4つ分 入る

これは 親切機能です(勝手にやってるわけではない)。


対象になる構文

以下は全部「Enter → 自動インデント」されます。

if 条件: 
for i in range(3): 
while 条件: 
def func(): 
class A:

Enter を押したら勝手にインデントされる仕組み

実際に起きていること

VS Code は裏でこうしています:

  1. 今の行を解析

  2. Python文法的に「ブロック開始」か判断

  3. 次の行に 適切なインデントを自動挿入

つまり
👉 Python専用の文法理解 + エディタの機能
の合わせ技です。


Enter 後にインデントを戻したいとき

方法①:Backspace

for i in range(3):
▮←ここでBackspace

方法②:Shift + Tab(おすすめ)
インデントを 1段戻す
Pythonでは超頻出


オートインデントが邪魔なとき(制御方法)

方法A:一時的に無視する

EnterShift + Tab

方法B:自動インデントをオフ(非推奨だが可能)

設定画面

Ctrl + ,

検索:
auto indent

設定項目:
Editor: Auto Indent

    • FullNone

⚠️ Pythonでは 基本ON推奨
OFFにすると逆にミスが増えます。


よくある混乱ポイント(超重要)

Q. インデントがズレると何が起きる?

👉 エラーになる

for i in range(3):

print(i) # ← エラー

エラー例:

IndentationError: expected an indented block

Q. スペースとTabが混ざると?

👉 最悪の地雷

VS Codeでは スペース4つに統一が安全。

設定確認:右下 Spaces: 4


まとめ(ここだけ覚えればOK)

オートインデント

  • Pythonの文法を守るため

  • : の次で自動発動

  • 敵ではなく味方

操作チート表

操作 効果
Enter 次の行へ+自動インデント
Shift + Tab インデント戻す
Tab インデント増やす
Backspace 1段削る

インデントエラー


インデントエラーをわざと起こして読む練習

Step1:まずは「正しいコード」

for i in range(3):
    print(i)

print("終わり")


👉 実行結果
0
1
2
終わり

Step2:インデントを「わざと壊す」

for i in range(3):
print(i)

print("終わり")


出るエラー
IndentationError: expected an indented block
読み方
  • expected an indented block
    「インデントされたブロックが必要です」

👉
「for の次には必ず字下げが必要」
という意味。

Step3:逆に「字下げしすぎる」

for i in range(3):
        print(i)

これは?👉 エラーにならない

理由:

  • インデントは「深さが揃っていればOK」

  • 4個でも8個でも問題なし(ただし非推奨)

Step4:混ざると危険(地雷)

for i in range(3):
    print(i)
        print("NG")

出るエラー例 IndentationError: unexpected indent

意味:「ここで字下げするのはおかしい」

 for / if を崩して直す練習

問題①:if の中に入っていない

x = 10
if x > 5:
print("5より大きい")

修正後(正解)

x = 10
if x > 5:
    print("5より大きい")

問題②:for の外に出したいのに出ていない

for i in range(3):
    print(i)
    print("ループ終了")

👉 このままだと毎回表示される

修正後

for i in range(3):
    print(i)

print("ループ終了")

問題③:if と for の組み合わせ(超重要)

壊れたコード

for i in range(3):
if i == 1:
    print("1です")

正解

for i in range(3):
    if i == 1:
        print("1です")

👉 階段状になるのがポイント。


VS Code 操作も一緒に練習しよう

操作セット

  • Tab → インデント追加

  • Shift + Tab → インデント戻す

  • 行選択 → 一気に調整できる

エラー文の「超短縮読み取り法」

エラー 見る場所
IndentationError インデント
SyntaxError 記号・構文
NameError 変数名
TypeError 型ミス

👉 まずエラー名だけ見る
それだけで8割解決します。

いろいろなエラー

1️⃣ while文 × インデント地獄
2️⃣ def(関数)× インデントの正体
3️⃣ エラー文を「一瞬で読む」訓練
4️⃣ 総合ミニ演習(答え付き)

全部 コピペ → Run → わざと壊す でOKです。


1️⃣ while文 × インデント地獄

正常なコード

i = 0
while i < 3:
print(i)
i += 1print("終了")

出力:

0
1
2
終了

❌ 地獄①:インデント忘れ

i = 0
while i < 3:
print(i)
i += 1


エラー

IndentationError: expected an indented block

while の次は必ず字下げ


❌ 地獄②:無限ループ(エラー出ないのが怖い)

i = 0

while i < 3:
print(i)

👉 止まらない
👉 Ctrl + C で止める

理由:i += 1 が while の中にない


✅ 修正

i = 0

while i < 3:
print(i)
i += 1

2️⃣ def(関数)× インデントの正体

正しい関数

def hello():
print("こんにちは")hello()

❌ 関数なのに字下げなし

def hello():

print("こんにちは")


エラー

IndentationError: expected an indented block
❌ 呼び出しまで字下げ
def hello():
print("こんにちは")
hello()

👉 無限ループ(自分を呼び続ける)


正解構造(超重要)

def 関数名():
# 中身(字下げ)# ここは関数の外

3️⃣ エラー文を「一瞬で読む」訓練

① IndentationError

IndentationError: unexpected indent

👉 字下げがおかしい


② SyntaxError

print("hello"

👉 カッコ・コロン忘れ


③ NameError

print(x)

👉 x が定義されていない


④ TypeError

print("a" + 1)

👉 型が違う(文字+数字)


⑤ FileNotFoundError(あなたが体験済み)

open("test.txt")

👉 ファイル・パスがない


🔑 エラー読みの黄金ルール

  1. 一番下の行だけ見る

  2. エラー名だけ読む

  3. 行番号を見る

👉 内容は後回しでOK


4️⃣ 総合ミニ演習(超重要)

問題:どこがおかしい?

def check(n):
if n > 0:
print("正の数")
else:
print("0以下")check(1)

正解

def check(n):
if n > 0:
print("正の数")
else:
print("0以下")check(1)

🧠 最重要まとめ(ここだけ覚えて)

  • Pythonは 字下げ=カッコ

  • エラーは「怒ってる」だけで壊れてない

  • while / for / if / def は 次の行を必ず字下げ

  • 無限ループは Ctrl + C

コメント