I'll try to answer why pressing the Tab key leads to different results when you're using the Emacs GUI vs. Emacs in a terminal.
org-cycle is bound to both
TAB (at least in my and probably your version of org (see ).
evil-jump-forward is bound to just
TAB. (Yes, these are subtly different!)
<tab> is how Emacs interprets the Tab key in GUI Emacs. Normally, (but not always), in GUI Emacs,
<tab> is "translated" to
C-h k <tab> in a GUI).
TAB is AFAICT completely equivalent to
C-i. In a terminal, when you press the Tab key, the terminal just sends the control character
C-i and there's no way to distinguish between Ctrl+i and Tab. (You can play around with
C-h k C-i and
C-h k <tab> in both the terminal and the GUI.)
In this case, since
org-cycle is bound to
<tab>, when you press Tab in GUI Emacs, it's immediately interpreted as
org-cycle, and we never get to
When you press Tab in Terminal Emacs, it's sent by the terminal as
TAB) to Emacs, and since Evil has priority over Org, it's interpreted as
evil-jump-forward. (If you were to disable Evil, then
C-i would run
org-cycle because it'd no longer be shadowed by
Disabling mapping of
You can use:
(setq evil-want-C-i-jump nil)
(require 'evil) or
This will unfortunately disable the mapping everywhere (not just in Org files).
If you want to override the mapping just for Org files (and have it active in all other files), you could create your own keymap that overrides evil and that's only activated for Org files or perhaps try using evil-org (which creates such a keymap and does the override for you. (note: I haven't tried it))
From this answer, you could also try:
(evil-define-key 'normal org-mode-map (kbd "<tab>") #'org-cycle)