зеркало из
https://github.com/iharh/notes.git
synced 2025-10-31 21:56:08 +02:00
64 строки
2.2 KiB
EmacsLisp
64 строки
2.2 KiB
EmacsLisp
(add-hook 'clojure-mode-hook
|
|
(lambda ()
|
|
(set (make-local-variable 'lisp-indent-function) nil) ; 'clojure-indent-function
|
|
(set (make-local-variable 'indent-line-function) 'indent-relative-maybe) ; 'lisp-indent-line / 'insert-tab / 'indent-relative
|
|
|
|
(define-key clojure-mode-map (kbd "RET") 'newline-and-indent) ; 'reindent-then-newline-and-indent
|
|
)
|
|
)
|
|
|
|
; (setq clojure-mode-use-backtracking-indent t) ; experimental
|
|
; (global-set-key (kbd "C-m") 'newline-and-indent)
|
|
; (add-hook 'slime-connected-hook (lambda () (require 'clojure-mode)))
|
|
;; SLIME Keys
|
|
;(define-key slime-mode-map (kbd "TAB") 'slime-indent-and-complete-symbol)
|
|
|
|
|
|
;(defvar clojure-mode-map
|
|
; (let ((map (make-sparse-keymap)))
|
|
; (set-keymap-parent map lisp-mode-shared-map)
|
|
; (define-key map "\e\C-x" 'lisp-eval-defun)
|
|
; (define-key map "\C-x\C-e" 'lisp-eval-last-sexp)
|
|
; (define-key map "\C-c\C-e" 'lisp-eval-last-sexp)
|
|
; (define-key map "\C-c\C-l" 'clojure-load-file)
|
|
; (define-key map "\C-c\C-r" 'lisp-eval-region)
|
|
; (define-key map "\C-c\C-z" 'run-lisp)
|
|
; (define-key map (kbd "RET") 'reindent-then-newline-and-indent) ; !!!
|
|
; map)
|
|
; "Keymap for Clojure mode. Inherits from `lisp-mode-shared-map'.")
|
|
|
|
;(defun clojure-mode ()
|
|
;...
|
|
; (set (make-local-variable 'lisp-indent-function)
|
|
; 'clojure-indent-function)
|
|
|
|
; ??? lisp-indent-offset var
|
|
|
|
|
|
|
|
;(defun insert-tab ()
|
|
; "self-insert-command doesn't seem to work for tab"
|
|
; (interactive)
|
|
; (insert "\t")
|
|
;)
|
|
|
|
; (setq indent-line-function 'insert-tab) ;# for many modes
|
|
|
|
|
|
;; Fix the worse part about emacs: indentation craziness
|
|
;; 1. When I hit the TAB key, I always want a TAB character inserted
|
|
;; 2. Don't automatically indent the line I am editing.
|
|
;; 3. When I hit C-j, I always want a newline, plus enough tabs to put me on
|
|
;; the same column I was at before.
|
|
;; 4. When I hit the BACKSPACE key to the right of a TAB character, I want the
|
|
;; TAB character deleted-- not replaced with tabwidth-1 spaces.
|
|
;(defun newline-and-indent-relative ()
|
|
; "Insert a newline, then indent relative to the previous line."
|
|
; (interactive "*")
|
|
; (newline)
|
|
; (indent-relative)
|
|
;)
|
|
; DANGER
|
|
;(defun indent-according-to-mode () ())
|
|
;(defalias 'newline-and-indent 'newline-and-indent-relative)
|