Function: clojure-mode

clojure-mode is an autoloaded, interactive and byte-compiled function defined in clojure-mode.el.

Signature

(clojure-mode)

Documentation

Major mode for editing Clojure code.

C-: clojure-toggle-keyword-string
C-M-q prog-indent-sexp
C-c C-a clojure-align
C-c C-r # clojure-convert-collection-to-set
C-c C-r ' clojure-convert-collection-to-quoted-list
C-c C-r ( clojure-convert-collection-to-list
C-c C-r - clojure-toggle-ignore
C-c C-r C-# clojure-convert-collection-to-set
C-c C-r C-' clojure-convert-collection-to-quoted-list
C-c C-r C-( clojure-convert-collection-to-list
C-c C-r C-- clojure-toggle-ignore
C-c C-r C-_ clojure-toggle-ignore-surrounding-form
C-c C-r C-a clojure-add-arity
C-c C-r C-f clojure-thread-first-all
C-c C-r C-l clojure-thread-last-all
C-c C-r C-o clojure-cycle-not
C-c C-r C-p clojure-promote-fn-literal
C-c C-r C-t clojure-thread
C-c C-r C-u clojure-unwind
C-c C-r C-w clojure-cycle-when
C-c C-r C-{ clojure-convert-collection-to-map
C-c C-r ESC clojure-convert-collection-to-vector
C-c C-r P clojure-promote-fn-literal
C-c C-r TAB clojure-cycle-if
C-c C-r [ clojure-convert-collection-to-vector
C-c C-r _ clojure-toggle-ignore-surrounding-form
C-c C-r a clojure-add-arity
C-c C-r f clojure-thread-first-all
C-c C-r i clojure-cycle-if
C-c C-r l clojure-thread-last-all
C-c C-r n h clojure-insert-ns-form-at-point
C-c C-r n i clojure-insert-ns-form
C-c C-r n r clojure-rename-ns-alias
C-c C-r n s clojure-sort-ns
C-c C-r n u clojure-update-ns
C-c C-r o clojure-cycle-not
C-c C-r p clojure-cycle-privacy
C-c C-r s b clojure-let-backward-slurp-sexp
C-c C-r s f clojure-let-forward-slurp-sexp
C-c C-r s i clojure-introduce-let
C-c C-r s m clojure-move-to-let
C-c C-r t clojure-thread
C-c C-r u clojure-unwind
C-c C-r w clojure-cycle-when
C-c C-r { clojure-convert-collection-to-map
C-c C-s C-b sesman-link-with-buffer
C-c C-s C-d sesman-link-with-directory
C-c C-s C-l sesman-link-with-least-specific
C-c C-s C-p sesman-link-with-project
C-c C-s C-q sesman-quit
C-c C-s C-r sesman-restart
C-c C-s C-s sesman-start
C-c C-s C-u sesman-unlink
C-c C-s C-w sesman-browser
C-c C-s TAB sesman-info
C-c C-s b sesman-link-with-buffer
C-c C-s d sesman-link-with-directory
C-c C-s i sesman-info
C-c C-s l sesman-link-with-least-specific
C-c C-s p sesman-link-with-project
C-c C-s q sesman-quit
C-c C-s r sesman-restart
C-c C-s s sesman-start
C-c C-s u sesman-unlink
C-c C-s w sesman-browser
C-c C-x C-c C-j cider-connect-clj
C-c C-x C-c C-s cider-connect-cljs
C-c C-x C-c RET cider-connect-clj&cljs
C-c C-x C-c j cider-connect-clj
C-c C-x C-c m cider-connect-clj&cljs
C-c C-x C-c s cider-connect-cljs
C-c C-x C-j C-j cider-jack-in-clj
C-c C-x C-j C-n cider-start-nrepl-server
C-c C-x C-j C-s cider-jack-in-cljs
C-c C-x C-j RET cider-jack-in-clj&cljs
C-c C-x C-j j cider-jack-in-clj
C-c C-x C-j m cider-jack-in-clj&cljs
C-c C-x C-j n cider-start-nrepl-server
C-c C-x C-j s cider-jack-in-cljs
C-c C-x C-s C-j cider-connect-sibling-clj
C-c C-x C-s C-s cider-connect-sibling-cljs
C-c C-x C-s j cider-connect-sibling-clj
C-c C-x C-s s cider-connect-sibling-cljs
C-c C-x C-x cider
C-c C-x c j cider-connect-clj
C-c C-x c m cider-connect-clj&cljs
C-c C-x c s cider-connect-cljs
C-c C-x j j cider-jack-in-clj
C-c C-x j m cider-jack-in-clj&cljs
C-c C-x j n cider-start-nrepl-server
C-c C-x j s cider-jack-in-cljs
C-c C-x j u cider-jack-in-universal
C-c C-x s j cider-connect-sibling-clj
C-c C-x s s cider-connect-sibling-cljs
C-c C-x x cider
C-c M-C cider-connect-cljs
C-c M-J cider-jack-in-cljs
C-c M-c cider-connect-clj
C-c M-j cider-jack-in-clj
C-c M-x cider
C-c SPC clojure-align

In addition to any hooks its parent mode prog-mode might have run, this mode runs the hook clojure-mode-hook, as the final or penultimate step during initialization.

Key Bindings

Source Code

;; Defined in ~/.emacs.d/elpa/clojure-mode-20260325.811/clojure-mode.el
;;;###autoload
(define-derived-mode clojure-mode prog-mode "Clojure"
  "Major mode for editing Clojure code.

\\{clojure-mode-map}"
  (clojure-mode-variables)
  (clojure-font-lock-setup)
  (add-hook 'paredit-mode-hook #'clojure-paredit-setup)
  ;; `electric-layout-post-self-insert-function' prevents indentation in strings
  ;; and comments, force indentation of non-inlined docstrings:
  (add-hook 'electric-indent-functions
            (lambda (_char) (if (and (clojure-in-docstring-p)
                                     ;; make sure we're not dealing with an inline docstring
                                     ;; e.g. (def foo "inline docstring" bar)
                                     (save-excursion
                                       (beginning-of-line-text)
                                       (eq (get-text-property (point) 'face)
                                           'font-lock-doc-face)))
                                'do-indent))))