メインコンテンツまでスキップ

Cursor のターミナルハングとフリーズ問題の解決

Cursor Terminal Hang

Cursor の統合ターミナルは、ハング、フリーズ、またはコマンド実行の応答がない状態になることがあります。このガイドでは、体系的な診断と修正方法を提供します。

一般的な症状​

症状説明
ターミナルが応答しないコマンドを入力しても何も出力されない
コマンドがフリーズコマンドが開始したが完了しない
カーソルが固まるターミナルカーソルが点滅を停止する
シェル起動失敗ターミナルが開くがシェルがロードされない
CPU 使用率が高いターミナルプロセスが大量の CPU を消費する

クイック修正​

方法 1:ターミナルを再起動​

# Cursor で
1. ターミナルパネルの右上にあるゴミ箱アイコンをクリック
2. またはショートカット Cmd/Ctrl + Shift + P
3. 「Terminal: Kill Terminal」と入力
4. Ctrl + ` でターミナルを再度開く

方法 2:シェルタイプを切り替える​

# コマンドパレットを開く (Cmd/Ctrl + Shift + P)
# 「Terminal: Select Default Profile」と入力
# 別のシェルを選択:
# - Windows: PowerShell -> Git Bash -> CMD
# - macOS: zsh -> bash
# - Linux: bash -> zsh

方法 3:シェル統合を無効化​

// 設定を開く (Cmd/Ctrl + ,)
// 「terminal integrated shell integration」を検索
{
"terminal.integrated.shellIntegration.enabled": false
}

詳細診断​

チェック 1:問題のあるシェルを特定​

# 現在使用しているシェルを確認
echo $SHELL

# シェルバージョンを確認
$SHELL --version

# シェルが応答するかテスト
$SHELL -c "echo test"

チェック 2:シェル設定ファイルを確認​

# 設定ファイルにエラーがないか確認
# Bash
bash -n ~/.bashrc
bash -n ~/.bash_profile

# Zsh
zsh -n ~/.zshrc
zsh -n ~/.zprofile

# PowerShell
# PowerShell で実行:
Test-Path $PROFILE

チェック 3:最小限の環境でテスト​

# クリーンな環境でシェルを起動
# Bash
env -i HOME=$HOME TERM=$TERM bash --norc --noprofile

# Zsh
env -i HOME=$HOME TERM=$TERM zsh -f

# 最小限の環境で正常に動作する場合、設定ファイルに問題がある

シェル別の修正​

Bash の修正​

# 問題:.bashrc にハングするコマンドがある
# 修正:怪しい行をコメントアウト

# ~/.bashrc を編集
# 以下を探してコメントアウト:
# - インタラクティブなコマンド(vim、nano など)
# - 入力を必要とするコマンド
# - 長時間実行されるコマンド
# - 問題のあるエイリアス

# 一般的な問題のある設定:
# ❌ .bashrc に以下を入れない:
# eval "$(ssh-agent -s)" # ハングする可能性
# some-command & # バックグラウンドプロセスが問題を起こす可能性
# read -p "Press enter" # インタラクティブ入力はターミナルをハングさせる

# ✅ 安全な代替案:
# インタラクティブなコマンドは .bash_profile に入れる
# または条件分岐を使用:
if [ -z "$PS1" ]; then
# 非インタラクティブの場合、スキップ
return
fi

Zsh の修正​

# 問題:Oh-My-Zsh プラグインがハングを引き起こす
# 修正:問題のあるプラグインを無効化

# ~/.zshrc を編集
plugins=(
git
# 以下の問題のあるプラグインを無効化:
# nvm # Node が未インストールの場合ハングする可能性
# pyenv # Python が未インストールの場合ハングする可能性
# rbenv # Ruby が未インストールの場合ハングする可能性
)

# 問題:プロンプトテーマの実行が遅い
# 修正:シンプルなテーマに切り替え
ZSH_THEME="robbyrussell" # 高速テーマ
# ZSH_THEME="powerlevel10k/powerlevel10k" # 遅い可能性あり

# 問題:nvm の自動読み込みが遅い
# 修正:遅延読み込み
lazy_load_nvm() {
unset -f npm node nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
}
npm() { lazy_load_nvm; npm "$@"; }
node() { lazy_load_nvm; node "$@"; }

PowerShell の修正​

# 問題:Profile スクリプトがハング
# 修正:PowerShell Profile を確認

# 現在の profile を確認
$PROFILE

# profile が原因かテスト
pwsh -NoProfile

# profile なしで正常に動作する場合、
# profile を編集して怪しい行をコメントアウト:
# notepad $PROFILE

# 一般的な問題のある設定:
# ❌ profile に以下を入れない:
# Start-SomeLongCommand
# 問題のあるモジュールを Import-Module
# 実行が遅いカスタムプロンプト関数

# ✅ 遅延読み込みを使用
function prompt {
# 遅延初期化
if (-not $global:PromptInitialized) {
$global:PromptInitialized = $true
# 遅い操作はここに
}
"> "
}

Cursor 固有の修正​

修正 1:Cursor を更新​

# 最新バージョンを使用していることを確認
# ヘルプ -> 更新を確認
# またはショートカット Cmd/Ctrl + Shift + P -> "Check for Updates"

修正 2:ターミナルキャッシュをクリア​

# すべてのターミナルを閉じる
# Cursor のキャッシュをクリア:

# macOS
rm -rf ~/Library/Application\ Support/Cursor/Cache

# Windows
# %APPDATA%\Cursor\Cache を削除

# Linux
rm -rf ~/.config/Cursor/Cache

修正 3:ターミナル設定をリセット​

// settings.json を開く (Cmd/Ctrl + Shift + P -> "Preferences: Open Settings JSON")
// ターミナル関連の設定をリセット:
{
"terminal.integrated.shellIntegration.enabled": true,
"terminal.integrated.defaultProfile.osx": "zsh",
"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.defaultProfile.linux": "bash",
"terminal.integrated.enablePersistentSessions": false,
"terminal.integrated.gpuAcceleration": "off"
}

修正 4:GPU アクセラレーションを無効化​

// ターミナルレンダリングに問題がある場合、GPU アクセラレーションを無効化
{
"terminal.integrated.gpuAcceleration": "off"
}

修正 5:ターミナルタイムアウトを調整​

// コマンドタイムアウト時間を増加
{
"terminal.integrated.shellIntegration.commandTimeout": 5000,
"terminal.integrated.shellIntegration.commandFinishedTimeout": 5000
}

環境固有の問題​

Windows 固有の問題​

# 問題:Windows Defender がスクリプトをスキャン
# 修正:除外設定を追加
# Windows セキュリティ -> ウイルスと脅威の防止 -> 除外
# Cursor のインストールディレクトリを追加

# 問題:ConPTY の問題
# 修正:レガシーコンソールを使用
{
"terminal.integrated.windowsEnableConpty": false
}

# 問題:PowerShell の実行ポリシー
# 修正:実行ポリシーを確認
Get-ExecutionPolicy
# 必要に応じて RemoteSigned に設定(管理者として):
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

macOS 固有の問題​

# 問題:macOS ターミナル権限
# 修正:ターミナル権限を確認
# システム環境設定 -> セキュリティとプライバシー -> プライバシー -> フルディスクアクセス権限
# Cursor が追加されていることを確認

# 問題:Rosetta 変換の問題 (Apple Silicon)
# 修正:ネイティブアーキテクチャを使用
# Cursor で x86_64 版の Node/ツールを使用する場合
arch -x86_64 zsh

# 問題:zsh 権限
# 修正:zsh 権限を確認
chmod 755 /bin/zsh
chmod 755 /usr/local/bin/zsh # Homebrew でインストールした場合

Linux 固有の問題​

# 問題:依存関係が不足
# 修正:必要なパッケージをインストール
# Ubuntu/Debian
sudo apt-get install -y libnss3 libgtk-3-0 libxss1 libasound2

# Fedora
sudo dnf install -y nss gtk3 libXScrnSaver alsa-lib

# 問題:Wayland の問題
# 修正:X11 を使用
# Cursor 起動時:
CURSOR_USE_WAYLAND=0 cursor

# または settings.json で:
{
"terminal.integrated.gpuAcceleration": "off"
}

高度な診断​

デバッグログを有効化​

// ターミナルデバッグを有効化
{
"terminal.integrated.logLevel": "trace"
}

# ログを確認
# ヘルプ -> 開発者ツールを切り替え -> Console タブ
# [terminal] で始まるメッセージを探す

プロセスツリーを確認​

# ハングしているターミナルプロセスを探す
# macOS/Linux
ps aux | grep -i cursor
pstree -p | grep cursor

# Windows (PowerShell)
Get-Process | Where-Object { $_.ProcessName -like "*cursor*" }
# または Process Explorer を使用

# 特定のプロセスを強制終了
kill -9 <PID> # macOS/Linux
Stop-Process -Id <PID> # Windows

ファイルディスクリプタを確認​

# ターミナルが入力待ちでハングしていないか確認
# macOS/Linux
lsof -p <PID> | grep -E "(FIFO|PIPE)"

# 開いている TTY を確認
ls -la /proc/<PID>/fd/ | grep tty

予防策​

設定のベストプラクティス​

# シェル設定でタイムアウトを使用
# Bash
timeout_cmd() {
timeout 5s "$@" || echo "Command timed out"
}

# Zsh
set -o pipefail
set -e

# 再帰的エイリアスを回避
alias ls='ls --color=auto' # 安全
# alias ls='ls -la' # 危険!再帰

定期メンテナンス​

# 月に一度クリーンアップ
# 1. ターミナル履歴をクリア
history -c && history -w

# 2. 一時ファイルを削除
rm -rf /tmp/*
rm -rf ~/.cache/cursor/*

# 3. ツールを更新
# macOS (Homebrew)
brew update && brew upgrade

# Ubuntu/Debian
sudo apt-get update && sudo apt-get upgrade

# 4. 設定ファイルの構文を確認
bash -n ~/.bashrc
zsh -n ~/.zshrc

バグを報告すべきタイミング​

上記の方法がすべて無効な場合、Cursor チームに報告してください:

  1. 情報を収集:

    # Cursor バージョン
    # ヘルプ -> バージョン情報

    # OS バージョン
    # macOS: sw_vers
    # Windows: winver
    # Linux: lsb_release -a

    # シェルバージョン
    $SHELL --version

    # ターミナルデバッグログ
    # 有効化して問題を再現し、ログをエクスポート
  2. GitHub で issue を提出:

    • 再現手順を含める
    • 関連する設定を添付する
    • OS 情報を提供する
    • エラーのスクリーンショットを含める

関連リソース​