用 C-c ' C-x h
选择有点复杂,有没有更简单直观一点的做法呢?
还有就是有没有比较好的格式化方案能支持 C-c '
啊?目前在用猫大的 refresh-file 格式化 elisp 但不支持 C-c '
的临时 buffer。
用 C-c ' C-x h
选择有点复杂,有没有更简单直观一点的做法呢?
还有就是有没有比较好的格式化方案能支持 C-c '
啊?目前在用猫大的 refresh-file 格式化 elisp 但不支持 C-c '
的临时 buffer。
我用这个函数来复制当前的代码块,按这个糊一下应该很快,然后绑定在一个快捷键上就行了。
(defun org-copy-src-block ()
(interactive)
(org-edit-src-code)
(mark-whole-buffer)
(kill-ring-save nil nil t)
(org-edit-src-abort))
你提醒了我,Emacs 里任何操作都有一个函数对应,我应该写个函数把需要的复制、格式化功能包裹起来。
转念一想,这个功能应该由 org-mode 或 format/lint 之类的插件来提供才对啊。
可能没有那么强的需求吧。
format/lint 之类的插件我感觉不应该管这个,只应该关注 buffer 就行,不然的话是不是应该给 markdown 或是其他的格式也提供一个同样的功能。
我研究一下看看是不是该用 mmm-mode/poly-mode 管理 org 中的代码块。
update
可能是我想复杂了,直接在临时 buffer 调出 indent-buffer 函数应该是最简单的方法了。
;; ---- org代码块相关的设置
(setq org-src-fontify-natively 1);代码块语法高亮
(setq org-src-tab-acts-natively 1);开启代码块语法缩进
(setq org-edit-src-content-indentation 0);代码块初始缩进范围
org中的代码块也可以按tab键来格式化,可以不用专门开一个临时buffer来格式化
太厉害了!感谢感谢