原文(日本語に翻訳)
Vimモードのundoを修正しました: u キーが、短時間に続けて入力したNORMAL/VISUALモードのコマンドをまとめて1つのundo操作にしてしまっていた問題を解消し、1操作ずつステップ実行するようになりました。
原文(英語)
Fixed vim mode undo: u now steps through NORMAL/VISUAL-mode commands one at a time instead of merging commands in quick succession into a single undo step
概要
Claude CodeのVimモード(/vim で有効化)において、u キーによるundo動作の問題が修正されました。以前は素早く連続して実行したコマンドが1つのundo操作にまとめられてしまい、意図した場所まで戻れないことがありました。修正後は各コマンドを個別にundoできます。
基本的な使い方
Vimモードの有効化:
bash
# セッション内で有効化
/vim
# または settings.json で常時有効化
{
"vimMode": true
}修正後のundo動作:
u→ 直前の1コマンドのみ取り消すuを繰り返すと → コマンドを1つずつ遡る- Ctrl+R → redo(取り消しを元に戻す)
実践例
連続コマンドでのundo動作の改善
入力履歴の例:
1. w → 次の単語へ移動
2. dw → 単語を削除
3. p → 貼り付け
4. dd → 行を削除修正前の動作(問題あり):
u → 1〜4をまとめてundo(意図しない場合が多い)修正後の動作(正確):
u → dd を取り消す(行を復元)
u → p を取り消す(貼り付けを取り消す)
u → dw を取り消す(単語を復元)
u → w の移動は元に戻せない(移動は取り消し対象外)テキスト編集でのundo活用
# プロンプト編集中(VIMモード)
i → INSERT モードに入る
"この関数は" と入力
ESC → NORMAL モードに戻る
A → 末尾にカーソルを移動
" 重要です" と追加入力
ESC
# 末尾の追記だけを取り消したい場合
u → "重要です" の追加を取り消す(修正後は正確に動作)
# さらに戻りたい場合
u → "この関数は" の入力を取り消すVISUALモードでの範囲選択undo
v → VISUAL モード開始
3j → 3行選択
d → 選択範囲を削除
# その後
u → 削除をundo(正確に1ステップ戻る)注意点
- この修正はVimモードが有効な場合のみ関係します(デフォルトモードには影響なし)
- 「短時間に連続したコマンド」の定義は内部のタイムアウトに基づいています。2.1.178以降はタイムアウトの代わりに各コマンドを個別に管理します
- テキスト移動コマンド(
w,b,e,h,j,k,lなど)はundoの対象外です(テキスト変更コマンドのみundo可能) - Ctrl+R(redo)も同様に1ステップずつ動作します