用sly-el-indent获得更好的Elisp缩进


#21

你这个是误用了defun spec。defunspec定义在lisp-indent-defun-method里,默认是(4 &lambda &body) 也就是说第一个参数缩进4格,第二个参数按lambda-list缩进,其余参数按body缩进。除非你的宏真的是类似defun的宏,否则慎用。

这种混合keyword和forms的建议直接用(indent 0)然后写的时候参数全部另起一行写


#22

Sly有sticker,差不多一个意思。


#23

我要的是能获得 breakpoint 的 lexical environment,然后能在这个 environment 里面 eval code。sticker 说白了就是个 visual goodies,没提供新功能


#24

那手动加break进debugger呢


#25

一样沒有 lexical env eval。我说了 sticker 和手动加沒实质区別


#26

哦,cl的debugger能eval但不是lexical


#27

搜索了 ~/.emacs.d/elpa 下的包和 Emacs 内置的包,似乎“误用”的情况不少。

有时候参数跟函数/宏名写在一行看起来比较顺眼。


#28

突然发现use-package用tagbody的缩进不错

(put 'use-package 'common-lisp-indent-function '(4 &rest lisp-indent-tagbody))

效果

(use-package helm
 :defer 1
 :after-call post-command-hook
 :init
   (setq helm-describe-function-function 'helpful-callable)
   (setq helm-inherit-input-method nil)
 :bind
   ([remap apropos] . helm-apropos)
   ([remap find-library] . helm-locate-library)
   ([remap bookmark-jump] . helm-bookmarks)
   ([remap execute-extended-command] . helm-M-x)
   ([remap find-file] . helm-find-files)
   ([remap imenu-anywhere] . helm-imenu-anywhere)
   ([remap imenu] . helm-semantic-or-imenu)
   ([remap noop-show-kill-ring] . helm-show-kill-ring)
   ;; ([remap persp-switch-to-buffer] . +helm/workspace-mini)
   ([remap switch-to-buffer] . helm-mini)
   ;; ([remap projectile-find-file] . +helm/projectile-find-file)
   ([remap projectile-recentf] . helm-projectile-recentf)
   ([remap projectile-switch-project] . helm-projectile-switch-project)
   ([remap projectile-switch-to-buffer] . helm-projectile-switch-to-buffer)
   ([remap recentf-open-files] . helm-recentf)
   ([remap yank-pop] . helm-show-kill-ring)
   ([remap woman] . helm-man-woman)
   ([remap comint-history-isearch-backward-regexp] . helm-comint-input-ring)
   ([remap comint-history-isearch-backward] . helm-comint-input-ring)
   ("C-c C-r" . helm-resume)
   (:map minibuffer-local-map
         ("C-r" . helm-minibuffer-history)
         ("C-c C-l" . helm-minibuffer-history))
 :config
   (helm-mode 1)
   (add-to-list 'helm-completing-read-handlers-alist
                `(,#'find-file-at-point . nil)))