文件里还有一堆这样的代码块,这里面缩进成这样了
不知道有没有一个命令能让他妈自动调整一下,而不是到其中按
C-c '
,然后缩进整块代码
这个样式发布的html好像太小了,各位有看着顺眼的样式吗
还有这个目录在左边这个设置我挺喜欢的,就是左边这栏颜色和样式不咋地(狗头
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
你要找的是不是
(setq org-edit-src-content-indentation 0)
试试keyboard macro吧,解决你的重复劳动
C-x (
开始定义,C-x )
结束定义,C-x e
执行宏,之后连续 e
可以连续执行
另外 C-c C-v C-n
可以跳转到下一个源码块,对应 org-babel-next-src-block
所以你可以光标放在一个源码块上
C-x (
C-c '
C-x h
<TAB>
C-c '
C-c C-v C-n
C-x )
下面开始重复执行
C-x e e e e e e e
设置了以后该怎么办呢?
顺带说一下我的大部分代码块都是从markdown
里的"```" 转为#+begin_src
的
@ringawho 好麻烦啊,其实我想参考子龙山人的代码,虽然这个配置在org-mode
下好像不起作用
(defun indent-region-or-buffer()
(interactive)
(save-excursion
(if (region-active-p)
(progn
(indent-region (region-beginning) (region-end))
(message "Indent selected region."))
(progn
(indent-buffer)
(message "Indent buffer.")))))
(global-set-key (kbd "C-M-\\") 'indent-region-or-buffer)
org-indent-block,不过需要挪到 begin_src/end_src 那一行操作。可以写个命令,带上 org-previous-block ,应该能满足缩进的需求
(defun claude/org-indent-block (arg &optional block-regexp)
"Indent the block around point."
(interactive "p")
(org-previous-block arg block-regexp)
(org-indent-block))
我只介绍使用键盘宏的方式,对于我来说是个特殊情况,所以我不会去搞一个配置的,在我看来这只是一个重复缩进代码块的问题,键盘宏可以很好的解决
至于过程我已经说的很清楚了
C-x (
开始定义键盘宏
C-c '
编辑源码块
C-x h
选中所有文本 (这个刚刚忘说了,抱歉,我再更改一下前面的回复)
<TAB>
格式化
C-c '
退出编辑源码块
C-c C-v C-n
跳到下一个源码块
C-x )
结束键盘宏的定义
定义完成之后,开始C-x e
执行,执行会重复刚刚这里面的操作,进入编辑,选中,格式化,退出,跳转,之后一直按e重复执行
1 个赞
要不换种思路
平时调整缩进我都是用Tab
键,有没有其他方法调整文本的缩进??
这里面东西是可以换的,我刚刚看了一下,indent-region
好像可以格式化,我这是绑定在C-M-\
的,<TAB>
改用这个就可以
如果这个不行,你自己找一个可以用来格式化的命令,就算它没有绑定在键上也可以通过M-x ...
来执行,键盘宏只是用来记录你按键的,只要合理都行
上面回复你了,不知道是没看到还是不满足需求?
附:支持 tab 缩进的一种实现方式
(defun claude-org/org-indent-block (arg &optional block-regexp)
"Indent the block around point."
(interactive "p")
(let ((current-point (point)))
(org-previous-block arg block-regexp)
(org-indent-block)
(goto-char current-point)))
(defun claude-org//org-cycle-advice (func &optional arg)
"Advice around `org-cycle'."
(if (org-in-block-p '("src"))
(claude-org/org-indent-block arg)
(funcall func arg)))
(advice-add 'org-cycle :around #'claude-org//org-cycle-advice)
org-indent-block
这个函数好像不起作用啊,所以我对这个方案还是有点犹豫的,没去尝试
那就是我前面提到的,不是大问题,上面贴的函数已经做好处理了
(defun claude-org/org-indent-block (arg &optional block-regexp)
"Indent the block around point."
(interactive "p")
(let ((current-point (point)))
(org-previous-block arg block-regexp)
(org-indent-block)
(goto-char current-point)))
(defun claude-org//org-cycle-advice (func &optional arg)
"Advice around `org-cycle'."
(if (org-in-block-p '("src"))
(claude-org/org-indent-block arg)
(funcall func arg)))
(advice-add 'org-cycle :around #'claude-org//org-cycle-advice)
用了你这个配置,重启后好像也没什么用,跟开org-indent-mode
有关吗??
无关
org-indent-block 基于 org-indent-region,你可以试一下手动选择代码块,执行 org-indent-region ,如果这也不能正常缩进,那就属于另外的问题了
org升级到9.4之后代码块内的编辑方式变得不可捉摸。。
mmtun
18
对于Markdown文档的转换,建议试用Pandoc进行转换。可以解决绝大多数问题。
mmtun
20
pandoc是命令行工具。使用下面的代码实现文档转换:
pandoc 源文档.md -o 目的文档.org
就可以了。
pandoc的安装你bing一下就能找到。很方便的。官方文档写的也非常清楚。如果需要可以在官网查看。