;; Compile Load ("C-c C-l" 'slime-load-file) ("C-c C-c" 'slime-compile-defun) ("C-c C-k" 'slime-compile-file) ;; Auto save(editted by me), compiled to *fasl and load the file ;; Save Load and Go ("M-s M-s" 'save-and-load-lisp) ;; Save (the buffer and eval the entire buffer) and go to REPL ("M-s M-f" 'complete-defun-or-defmacro) ;; Save and go to slime output buffer ;; Go ("C-c C-z" 'slime-switch-to-output-buffer) ("C-c C-y" 'slime-call-defun) ;; Go to REPL, and call the function in the cursor ;; Edit ("C-c C-q" 'slime-close-all-parens-in-sexp) ;; C-c C-] ("C-j" 'slime-close-all-parens-in-sexp) ("C-C M-q" 'slime-reindent-defun) ;; # userful 重新缩进 ("M-C-a" 'slime-beginning-of-defun) ("M-C-e" 'slime-end-of-defun) M-x slime-scratch ;; Run ("C-c C-c" 'slime-compile-defun) ("C-x C-e" 'slime-eval-last-expression) ("C-c C-e" 'slime-interactive-eval) ;; Read and evaluate STRING and print value in minibuffer. ("C-c C-e, C-c :" 'slime-interactive-eval) ;; REPL ("C-j" 'slime-repl-newline-and-indent) ("C-M-k" 'slime-repl-clear-buffer) ;; C-c M-o ("C-c C-o" 'slime-repl-clear-output) ;; Clear the output from last eval ;C-M-b/f/p/n ;Go to the corresponding sexp parenthesis (backward = prevous forward = next) ("M-n" 'slime-repl-next-input) ("M-p" 'slime-repl-previous-input) ("M-s" 'slime-repl-revious-next-input) ("M-r" 'slime-repl-revious-matching-input) ;; Most useful!! ("C-c C-n" 'slime-repl-next-prompt) ("C-c C-p" 'slime-repl-previous-prompt) ;; Sometimes ;; SBCL (apropos "keyword") (apropos-list "xxx") ;; Debug c Continue a Abort q Quit debugger v Locate source ;; Useful!! D Disassemble source e Evaluate prompted form in lexical context of current frame ;; Like po in Xcode i Inspect prompted form (evaluated in lexical context of current ;; Like po in Xcode ;; C-c C-c or C-c C-b 'slime-interrupt ("C-M-d" 'desc) ;; Find ("M-." 'slime-edit-definition) ;; !!! Useful !!! Go to the definition of function at point. ;; Mine ("C-M-t" 'time-code) ("C-c C-d f" 'slime-describe-function) ;; Describe the function at point. M-TAB [Useful] 'slime-complete-symbol (documentation #'name 'function) (describe #'name) (defun desc (symbol) (documentation symbol 'function)) (desc 'boundp) change-directory (aka !d, cd) ;; For emacs C-x + Make all windows the same height (balance-windows). To cut the text, press C-w. To copy the text, press M-w. To paste the text, press C-y. paste back: M-y C-x { is bound to shrink-window-horizontally C-x } is bound to enlarge-window-horizontally C-x ^ is bound to enlarge-window C-x C-w Save to C-x h mark-whole-buffer (Select all region ) M-x load-file M-x show-paren-mode C-z or M-: ;; Execute emacs command C-h l view-lossage ;; Check the last operation, use it to create interactive functions!! Go back to previous line position (or "C-u C-space" "C-u C-@") If you want to navigate back between buffers, you can use: (or "C-x C-space" "C-x C-@")