想问一下,emacs 29.0.50 版本的 org-mode 中,tab键失效的问题

新建 org 文档,按回车键,无法自动缩进



打开 org 文档,当使用对齐命令时,会打乱原有缩进,无论中文、英文、或其他语言的文字。

(打开文档时,正常有缩进)



(使用对齐命令后,格式打乱,无缩进)



对于tab键,只做了company的候选配置



而且这些配置,在 27.2 版本,都没有影响到 org-mode 的 tab 键功能和对齐缩进。一切正常。

以下是当前使用的 emacs 具体版本号,平台是 Arch

“GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.17.6) of 2022-03-27”

不知道大家是否也在这个版本中遇到了同样的问题?不知道还需要做哪些配置才能正常?

如果用了 evil 的话,是仅 normal state 不能用还是 insert state 也不能用? 如果仅是 normal state 的话,需要设置一下,比如说:

(define-key evil-normal-state-map (kbd "<tab>") 'org-cycle)
1 个赞

在evil的配置中设置(setq evil-want-C-i-jump nil)

2 个赞

感谢,设置后,tab键功能正常了。 但自动缩进功能还是不正确。 即便如此,也经非常感谢啦! :+1: :handshake:

感谢!可能是我这边设置的问题,使用(setq evil-want-C-i-jump nil)后,依然无效。
然后,单独使用(define-key evil-normal-state-map (kbd “”) 'org-cycle)这个设置,tab键功能正常了。 目前,自动缩进还不正常!
但依然很感谢提供解决方案! :+1: :hugs:

缩进可能和 org-adapt-indentation 有关,最近的 org-mode 版本把默认值改为 nil 了

2 个赞

目前29 的稳定性堪忧啊。。。 问下楼主截图的那片叶子是啥意思?evil状态么?

1月的时候升级到29.0.50后发现org-mode和evil有问题,就加了那行配置就ok了。

(use-package evil
  :ensure t
  :defer 1
  ;; :hook (after-init . evil-mode)
  :preface
  (setq evil-want-visual-char-semi-exclusive t
        evil-echo-state t
        evil-ex-search-vim-style-regexp t
        ;; foo-bar vim认为就是一个word,emacs会认为是2个
        evil-symbol-word-search t

        ;; emacs 29.0.50, org mode TAB
        ;; org-cycle broken while using evil https://github.com/emacs-evil/evil/issues/1505
        evil-want-C-i-jump nil

        evil-undo-system
        (cond (EMACS28+ 'undo-redo)))
  :config 
  (evil-mode 1)
1 个赞

非常感谢,实测有效
设置为
(setq org-adapt-indentation t)
后,果然可以自动缩进了!感谢!! :hugs: :+1:

在各位道友的帮助下,最终,我这边的配置加上这两句

(setq org-adapt-indentation t)
(define-key evil-normal-state-map (kbd "<tab>") 'org-cycle)

org-mode 中,tab键功能正常了!按回车也有自动缩进了,使用对齐命令也能够按照缩进对齐了!

是的,就是evil状态
我是用 图标字体 替换了 evil 的原显示效果。叶子,对应的是 evil-normal 模式。
在 evil 设置中,加入了下面这些设置,分别对应 normal、insert、visual、emacs模式等。

  (setq evil-normal-state-tag   (propertize "[  ]" 'face '((:background "green" :foreground "black")))
		evil-emacs-state-tag    (propertize "[ չ ]" 'face '((:background "orange" :foreground "black")))
		evil-insert-state-tag   (propertize "[  ]" 'face '((:background "red") :foreground "white"))
		evil-motion-state-tag   (propertize "[  ]" 'face '((:background "blue") :foreground "white"))
		evil-visual-state-tag   (propertize "[  ]" 'face '((:background "grey80" :foreground "black")))
		evil-operator-state-tag (propertize "[  ]" 'face '((:background "purple")))
		evil-replace-state-tag   (propertize "[  ]" 'face '((:background "deeppink" :foreground "black"))))

将 [ ] 中括号内的部分,换成自己喜欢的图标字体,比如 nerd-font icon,或者任意字符都可以。



2 个赞

加一行能有效果,那真的挺好的!
我加上这一行还是没有效果!可能是我这边配置和这有冲突吧!
我先抄下这段配置!为以后研究做参考!再次感谢!!! :+1: :hugs: