Skip to content

Instantly share code, notes, and snippets.

@otaon
Last active March 4, 2023 12:19
Show Gist options
  • Save otaon/d702866b15a9b47bbe19ff1261799dd9 to your computer and use it in GitHub Desktop.
Save otaon/d702866b15a9b47bbe19ff1261799dd9 to your computer and use it in GitHub Desktop.
slimv (slime for vim)のショートカット一覧

slimvのショートカット一覧

  • 一部誤謬がある可能性がある
  • abc^de はカーソルがcの上にあることを意味する

編集 edit

一般操作

コマンド 操作 操作例 操作結果
,) S式を閉じる (foo ,) (foo)
タブ シンボルを補完する (conca)上でタブ (concatenate)
,j 定義を探す (^foo),j
→対象名を入力してEnter
タグファイルがあればfooの定義にタグジャンプ
,( pareditモードを切り替える 下記コマンドが(使える|使えない) 下記コマンドが(使えない|使える)

pareditモード操作

コマンド 操作 操作例 操作結果
,W
,w(
S式を括弧で包む foo^ ,W
foo^ ,w(
(foo)
(foo)
,S S式をスプライスする(上の式と一緒にする) (foo (^bar)) ,S (foo bar)
,O S式をカーソルの左右で分離させる (foo^ bar) ,O (foo) (bar)
,J S式をくっつける (foo) ^ (bar) ,J (foo bar)
,I S式を1つ上の式に移動させ、元あった上のS式を削除する (foo (bar)) ,I (bar)
,< 括弧を左に動かす (foo)^ (bar baz qux) ,<
(foo) (^bar baz qux) ,<
() foo (bar baz qux)
((foo) bar baz qux)
,> 括弧を右に動かす (foo)^ (bar baz qux) ,>
^(foo) (bar baz qux) ,>
(foo (bar baz qux))
foo () (bar baz qux)

評価 evaluation

コマンド 操作 操作例 操作結果
,d defunを評価する (^defun foo () ...) ,d (defun foo () ...) を評価する
,e 現在の式を評価する (defun foo () aaa^ bbb) ,e aaa を評価する
,r 選択範囲を評価する (defun foo () ^aaa bbb^) ,r aaa bbb を評価する
,b 現在のバッファを評価する 現在のバッファfoo.lisp ,b foo.lisp を評価する
,v 対話的に評価する ,v 対話的に評価する
,u 関数の定義を解消する (^defun foo () ...) ,u (defun foo () ...) の定義を解消する

デバッグ debugging

デバッグ用コード編集

コマンド 操作 操作例 操作結果
,1 マクロを1段階展開する (^macro ...) ,1 (macro ...) を1段階展開した結果をREPLに表示する
,m マクロを全段階展開する (^macro ...) ,m (macro ...) を全段階展開した結果をREPLに表示する
,t
(trace functinname)
関数のトレースを切り替える
トレース時は、実行時に再帰的にトレース情報表示する
foo^ ,t 関数トレースを切り替える
,T 全ての関数に対するトレースを解消する トレース設定されている関数がない ,T トレース設定されている関数がない
,B ブレークポイントを設定する
# 実行するとエラー
^(foo ...) ,B (break) (foo ...)
,E 例外発生時にブレークする
# ritz-swankのみで有効
? ?
,l
(disassemble 'foo)
シンボルをディスアセンブルする (^foo ...) ,l (foo ...) をディスアセンブルした結果をREPLに表示する
,i インスペクトを表示する (^macro ...) ,i (macro ...) を評価する

デバッガ操作

コマンド 操作 操作例 操作結果
,a デバッガをabortする デバッガ起動中 ,a デバッガが終了する
,q デバッガを終了してトップレベルに戻る デバッガ起動中 ,q デバッガが終了してREPLがトップレベルに戻る
,n コンテニューする (^defun foo () ...) ,n (defun foo () ...) を評価する
,N 指定フレームから再開する デバッガのBacktrace:n:(foo bar) ,N 指定フレームから再開する

スレッド操作

コマンド 操作 操作例 操作結果
,H スレッド一覧を表示する ファイル編集時 ,H スレッド一覧をREPL側にする
,K スレッドをkillする ,K → スレッド番号指定 指定したスレッドをkillする
,G スレッドをデバッグする ,G → スレッド番号指定 指定したスレッドをデバッグする

コンパイル compilation

コマンド 操作 操作例 操作結果
,D defunをコンパイルする (defun foo^ () ...) ,D (defun foo () ...) をコンパイルする
,L ファイルをロードしてコンパイルする ,L 編集中のファイルをロードしてコンパイルする
,F ファイルをコンパイルする ,F 編集中のファイルをコンパイルする
,R 選択範囲をコンパイルする 範囲選択→,R 選択範囲をコンパイルする

Xref

コマンド 操作 操作例 操作結果
,xc 呼び出す側を表示する foo^ ,xc foo 対象を呼び出すコードの位置を表示する
,xr 参照する側を表示する foo^ ,xr foo 対象を参照するコードの位置を表示する
,xs セットする側を表示する foo^ ,xs foo 対象をセットするコードの位置を表示する
,xb バインドする側を表示する foo^ ,xb foo 対象をバインドするコードの位置を表示する
,xm マクロを展開する側を表示する foo^ ,xm foo 対象マクロを展開するコードの位置を表示する
,xp 特化(継承)する側を表示する foo^ ,xp foo 対象を特化したコードの位置を表示する
,xl 呼び出す側をリスト表示する foo^ ,xl foo 対象を呼び出すコードをリスト表示する
,xe 呼び出される側をリスト表示する foo^ ,xe foo 対象から呼び出されるコードをリスト表示する

プロファイリング Profiling

プロファイリング設定

コマンド 操作 操作例 操作結果
,p シンボルへのプロファイリングを切り替える foo^ ,p → シンボル名を入力してEnter 指定したシンボルへのプロファイリングを開始/終了する
,P 部分文字列によってプロファイリングを切り替える foo^ ,P → シンボル名を入力してEnter 指定したシンボルへのプロファイリングを開始/終了する
,U 全てのプロファイルを削除する ,U 全てのプロファイリング中を解除する
,? プロファイルされたものを表示する ,? プロファイリング対象を表示する

プロファイリング確認

コマンド 操作 操作例 操作結果
,o プロファイルリポートを確認する ,o REPLにプロファイルレポートを表示する
,X プロファイル設定をリセットする 関数へのプロファイルカウンタがセットされている ,X 全ての関数へのプロファイルカウンタされる

ドキュメント documentation

コマンド 操作 操作例 操作結果
,s or (describe "symbol") シンボルの情報を表示する ^symbol ,s symbolの情報をステータスラインに表示する
,A or (appropos "keyword") キーワードに一致する定義情報を一覧表示する ^keyword ,A keywordが含まれる定義情報をREPLに表示する
,h 選択シンボルをhyperspecで開く ^symbol ,h symbolをhyperspecで表示する
,] タグを生成する ,] タグファイルを生成する

REPL

コマンド 操作 操作例 操作結果
,c サーバに接続する ,c swankサーバに接続する
,y lispのプロセスにインタラプトする ,y 実行中のlispのプロセスに割り込んでデバッガを起動する
,- REPLの表示をクリアする c- REPLの表示をクリアする
,Q REPLを終了する ,Q REPLを終了する
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment