问题不确定是否跟doom有关,先放doom标签了。
如下示例:
光标移动到下面表格的 a 处时,输入 =vip=
| a | b |
| c | d |
#+begin_src emacs-lisp
(+ 2 3)
#+end_src
在doom里如上图,但是在vim里如下图。
【图片已删除,新人只能添加一张图片,效果是只选中table不分。】
这个差异导致文本超过一屏时,看不到选择的文本范围,如果想当然认为选中的只有表格,在使用 :'<,'>!
操作文本时,就会出现意外情况。而且有时不好发现。
对evil源码不太熟,翻了一下看起来底层实现依赖forward-paragraph。
我的疑问是,为什么evil的默认操作跟vim如此之大,是否有补救的办法?
找到问题根因了。
原因是 evil
的 vip
底层使用了 forward-line
,forward-line 依赖 paragraph-start
、paragraph-seperate
配置。而在 org.el 中,对 org-mode 的 buffer,对这两个变量做了改写。
改写后的行为是基于 org element 的,表现上比较奇怪,感觉用处不大。
我这里的做法,先把两个变量重置回原始值了。
(after! org
(defadvice! recover-paragraph-seperate ()
"Recover org paragraph mark position."
:after 'org-setup-filling
(setq-local paragraph-start "[\f\\|[ \t]*$]")
(setq-local paragraph-separate "[ \t\f]*$")))
1 个赞