VSCode + Calva で Clojure を書くための、ショートカットキーのメモ

2021-08-31

Clojureを勉強中。環境はWindowsで VSCode + Calva。

よく使いそうなショートカットキーを、ざっくりジャンルに分けてメモしてます。あとで、まとめる、つもり…。

※ c → ctrl、a → alt、s → shift, | → カーソル位置 を表す

特に使いそうな操作5つ

c+a+, / . barf forwarf / slurp forwarf

(|1 2 3)
↓ ctrl + alt + ,  barf forward
(|1 2) 3
↓ ctrl + alt + .  slurp forward
(|1 2 3)

c + Enter カーソルが当たっているフォームを評価

a + Enter カーソルが当たっているフォームのトップレベルから評価

(* |(+ 1 2) 4)
↓ ctrl + Enter  (+ 1 2)が評価される
=> 3
↓ alt + Enter   (* (+ 1 2) 4)が評価される
=> 12

c+←/→ backward sexp / forward sexp 現在のリスト内で、フォーム単位で移動。

c+home/end 現在のリスト内の先頭、末尾に移動

c+a+o o replウィンドウとの行き来

編集

c+a+,/. barf /slurp forwarf

a+↓↑ カーソルが当たっているのシンボル全体を移動

c+a+s+p/s/c/q ※ カーソル後ろのフォーム/選択範囲を()/[]/{}/""でかこむ

c+a+s カーソルの外側にある括弧を削除

選択してから([{" ※ 選択範囲を([{“で囲む

c+/ コメントアウト

a+dell/bksp 括弧にカーソルがある場合、整合性を無視して強制削除

c+a+del/bk

c+s+del/bk

c+del/bk カーソル位置からリストの最初/最後まで削除

c+a+bksp/c+s+del カーソル位置からフォーム単位でbksp/del

移動 / 選択

基本的に移動コマンドにshiftを追加すると選択になります。

c+←→ 現在のリスト内で、フォーム単位で移動。

c+home/end 現在のリスト内の先頭、末尾に移動

c+k c+q 最後に編集した場所へジャンプ

c+g 行ジャンプ

c+a+↓/↑

c+↓/↑ ※ カーソルをフォームの上・外/下・内に移動

選択

c+a+c c+s カーソルが当たっているのシンボルを選択。()[]{}""にカーソルが当たっていたら、開始から終了までを選択

s+a+←→ フォーム単位の選択 拡大縮小

c+l 行選択

検索

c+s+f プロジェクト全体の検索

?+r 正規表現検索

c+d 現在選択している文字と同じものを複数選択

ウィンドウの操作

メイン

c+p ファイル名で編集するファイルを選択

c+pgdn/pgup 開いているタブ間移動(すべてのタブ)

c+tab タブの一覧が出て選択(フォーカスがあたっているエディタウィンドウ内のみ)

c+1/2… ※ 左から数えた順番のにエディタウィンドウへフォーカス。その順番のエディタウィンドウが無ければ新しく開く

c+w エディタウィンドウを閉じる

サイドバー

c+b サイドバーの開閉

c+s+e ファイルエクスプローラー

c+s+g Gitウィンドウ

ターミナルウィンドウ

c+s+` ターミナルを開く

c+j ターミナルウィンドウの開閉

c+p 「term_ (←スペース) 」ターミナルを一覧から選択してにフォーカス

Repl

c+a+c c+a+j ※ jack-in

c+a+o o ※ replウィンドへ切り替え

c+a+c enter ※ 現在のファイルと依存関係をロードする

c+enter ※現在のフォームを評価する

a+enter ※ 現在のトップレベルフォームを評価する

c+a+enter 現在のリストの先頭からカーソルの位置までのテキストを評価

c+a+c c+a+space 現在のトップレベルフォームを、repウィンドウに貼り付け

c+a+c c+a+v 現在のフォームを、REPLウィンドウに貼り付け

c+a+c c+space エディタで評価した結果を、コメントに変換して次の行の挿入

a+c+c a+n replウィンドウの名前空間を現在のファイルの名前空間に切り替え

c+a+c c+a+d 無限ループなどを強制終了

c+a+c n replのnamespaceを現在のファイルのnamespaceに切り替える

デバッグ

ctrl+alt+c i

#break ブレークポイント

f5 コンティニュー

F10 ステップオーバー

F11 ステップイン

その他

c+s+p コマンドパレット

F12 定義へジャンプ

a+F12 サブウィンドウで定義を表示

s+f12 フォーカスがあたっているシンボルの一覧、ジャンプもできる。

c+k c+i docの表示/replの内容表示

esc ※ ↑インラインディスプレイを消去

c+a+c s+t ※ 全テスト実行

tab ※ 現在のフォームをフォーマット

c+a+l ※ 現在のフォームをフォーマットして、マップのキーと値を揃える