CodeMirrorのショートカット

ショートカットが使えることが多い

ブラウザで動作するコードエディタを実現する場合、CodeMirrorが使われる場合が多くあります。

CodeMirrorはキーボードショートカットをサポートしています。

CodeMirrorのコマンド

そうしたショートカットはCodeMirror.commandsオブジェクトによって定義されるコマンドを実行します。

コマンドもそれに対応するショートカットもCodeMirrorのデフォルトのままというのがほとんどのようです(独自に追加していればさすがにマニュアルなどで明確にするかと)。

下表はデフォルトのコマンドとショートカットです。

CodeMirrorコマンド ショートカット 操作
Windows Mac
save Ctrl+S Cmd+S 保存
find Ctrl+F Cmd+F 検索
findNext Ctrl+G Cmd+G 次を検索
findPrev Shift+Ctrl+G Shift+Cmd+G 前を検索
replace Shift+Ctrl+F Cmd+option+F 置換
replaceAll Shift+Ctrl+R Shift+Cmd+option+F 全て置換
defaultTab Tab 選択範囲があれば1インデントする
なければタブ文字を挿入
indentAuto Shift+Tab カーソル行か選択範囲を自動インデントする
indentMore Ctrl+] Cmd+] 現在行か選択範囲をインデントする
indentLess Ctrl+[ Cmd+[ 現在行か選択範囲をデデントする
newlineAndIndent Enter 改行を挿入し自動インデントする
insertTab - タブを挿入する
insertSoftTab - タブ幅に合わせてスペースを挿入
killLine - Ctrl+K 行末まで削除
delLineLeft - 行頭まで削除
deleteLine Ctrl+D Cmd+D 行を削除
delWrappedLineLeft - Cmd+delete 物理行頭まで削除
delWrappedLineRight - Cmd+fn+delete 物理行末まで削除
delCharBefore Shift+Backspace Ctrl+H 前の文字を削除
delCharAfter Delete Ctrl+D 後ろの文字を削除
delWordBefore - option+delete 前の単語を削除
delWordAfter - option+D 後ろの単語を削除
delGroupBefore Ctrl+Backspace option+delete グループの先頭まで削除
delGroupAfter Ctrl+Delete Ctrl+option+delete
option+fn+delete
グループの最後まで削除
transposeChars - Ctrl+ T 前後の文字を入れ替える
undo Ctrl+Z Cmd+Z アンドゥ
redo Ctrl+Y Shift+Cmd+Z
Cmd+Y
リドゥ
toggleOverwrite Insert 上書きフラグをON/OFFする
goDocStart Ctrl+Home Cmd+Home
Cmd+
ファイル先頭へ移動
goDocEnd Ctrl+End Cmd+End
Cmd+
ファイル末尾へ移動
goLineStart Alt+ Ctrl+A 行頭へ移動
goLineStartSmart Home 行頭へ移動
goLineEnd Alt+ Ctrl+E 行末へ移動
goLineRight - Cmd+ 物理行末へ移動
goLineLeft - Cmd+ 物理行頭へ移動
goLineLeftSmart - 物理行頭へ移動
goLineUp
Ctrl+P
上へ1行移動
goLineDown
Ctrl+N
下へ1行移動
goPageUp PageUp PageUp
Shift+Ctrl+V
上へ1画面移動
goPageDown PageDown PageDown
Ctrl+V
下へ1画面移動
goCharLeft
Ctrl+B
左へ1文字移動
goCharRight
Ctrl+F
右へ1文字移動
goWordLeft - option+B 前の単語の先頭へ移動
goWordRight - option+F 次の単語の末尾へ移動
goGroupLeft Ctrl+ option+ 前のグループの左に移動
goGroupRight Ctrl+ option+ 後ろのグループの右へ移動
goColumnLeft - 線境界を越えずに左へ1文字移動
goColumnRight - 線境界を越えずに右へ1文字移動
selectAll Ctrl+A Cmd+A 全選択
singleSelection Esc プライマリ以外の選択範囲を解除
undoSelection Ctrl+U Cmd+U 範囲選択の変更をアンドゥ
redoSelection Alt+U Shift+Cmd+U 範囲選択の変更をリドゥ

上の表でショートカットが割り当てられているコマンドは実際にショートカットが使える可能性が大きいです。

ブラウザベースのコードエディタを使っているならとりあえず試してみても損はないかと思います。

ショートカットを活用すればコーディングが速くなるためです。

WindowsとMacの判定はできない?

ショートカットはWindowsとMacで別れていますが、実際にはクライアントがWindowsかMacかの判定はできないようです。

例えばfindコマンドはMacだとCmd+Fのはずですが、Windows用のCtrl+Fでも実行されてしまいます。

その代わり、MacではCtrl+Fに割り当てらているはずのgoCharRightが機能していません。