解决 evil 模式下,TAB 在 org-mode 失效的问题
2023-02-18 16:29:03 时间
在 Org 中,TAB 被绑定在了 org-cycle
,可以非常方便的对某个标题下的内容折叠/展开,但是在 evil 的 normal 模式下,TAB 则被覆盖成了 evil-jump-forward
,这其实是和 Vim 对应的[1]
- •
Ctrl-i
jump forward to the next (newer) location. - •
Ctrl-o
to jump back to the previous (older) location.
同时,又由于在终端中, TAB 与 C-i
发送的是相同的 keycode 9(即 Character Tabulation[2]),所以导致了上面的行为。
由于笔者大多数不会用到 evil 的 jump 功能,所以一种简单的修复就是直接关闭它:
(setq evil-want-C-i-jump nil)
注意一点:这个初始化需要在加载 evil 前执行。如果使用 use-package
可以使用下面的方式:
(use-package evil
:custom ((evil-want-C-i-jump nil))
:config (evil-mode))
如果希望保留 evil 的 jump 功能,可以尝试把 TAB 与 C-i
区分开
- • key bindings - How to distinguish C-i from TAB? - Emacs Stack Exchange[3]
- • https://emacs.stackexchange.com/a/20290/16450
参考
- • “Fix” the tab key for visibility cycling in Org and Evil mode[4]
引用链接
[1]
Vim 对应的: https://zhuanlan.zhihu.com/p/270989474
[2]
Character Tabulation: https://en.wikipedia.org/wiki/Tab_key
[3]
key bindings - How to distinguish C-i from TAB? - Emacs Stack Exchange: https://emacs.stackexchange.com/questions/17509/how-to-distinguish-c-i-from-tab
[4]
“Fix” the tab key for visibility cycling in Org and Evil mode: https://jeffkreeftmeijer.com/emacs-evil-org-tab/
相关文章
- java基础算法-快速排序
- JavaFx出现错误Caused by: java.lang.NullPointerException: Location is required的解决方法
- Java 学习笔记 Junit4单元测试使用
- Java 学习笔记 网络编程 使用Socket传输文件 CS模式
- Java 学习笔记 使用并发包ReentrantLock简化生产者消费者模式代码
- Java 学习笔记 使用synchronized实现生产者消费者模式
- Java 学习笔记 观察者模式与适配者模式 监控文件夹
- Java 学习笔记 线程控制
- java学习笔记 线程的实现与同步
- Java 学习笔记 泛型
- Java 学习笔记 反射与迭代器
- Java 学习笔记 正则表达式
- Java 学习笔记 执行外部命令 包装类 枚举类型
- Java 学习笔记 判断一个数组是否有序
- Java 学习笔记 IO流与File操作
- Java小工具 根据文本批量修改文件名
- Java学习笔记 抽象类 接口 多态
- Java Scanner nextLine方法跳过
- Java 学习笔记 两大集合框架Map和Collection
- Java学习笔记——i++与++i问题