我喜欢vim。它让我觉得我直接进入文本并按照我的意愿弯曲它。
那就是说。我也喜欢Clojure,Clojurescript,Lisp和Org-mode。我真的,真的试图在邪恶的模式中喜欢Emacs,并且在我沮丧地放弃之前我给了它6-8周。
我正在考虑再试一次,因为我已经看到了一些使用ractive.js和org-mode进行文字编程的非常棒的例子。但是这次我想提前做好计划。我有一个简短的清单,我想知道怎么做才能在willy-nilly收费(事实上,如果我有勇气再去一次):
编辑大战是愚蠢的,emacs有很多事情要做,但我喜欢上排!有没有办法让我可以获得emacs操作系统的强大功能,同时保留我学到的这个体面的编辑器?
答案 0 :(得分:6)
领导者地图:http://wikemacs.org/index.php/Evil该文档应该向您展示如何使用emacs进行操作。键定义如下所示:
(define-key evil-normal-state-map "q" 'ido-kill-buffer) ; was previously record macro
另外请务必阅读官方pdf文档。另请参阅键和弦模式的示例。
缓冲区命令:true,管理缓冲区应该更快。你知道ido模式吗?
以下是我使用key-chord
和ido
组合的方式:
(key-chord-define-global "'b" 'ido-switch-buffer)
我有next-buffer
和previous-buffer
的类似密钥。我认为它比在终端上找到启动vim的文件路径要快得多。
此外,我无法在没有弹丸的情况下找到新文件:https://github.com/bbatsov/projectile
现在你有更精确的问题吗?
修改:在结束句子:
因此,邪恶使用evil-forward-sentence
但是,它与vim中的行为不同(请参阅注释)。 Emacs有forward-sentence
但它有相同的行为。我找不到具有所需效果的功能。
forward-sentence
基于sentence-end
变量(请参见M-x ielm
),这是一个定义行尾的正则表达式。所以可以重新定义它。这是一个需要扩展的简单示例:
(setq sentence-end "\\. ") ;;point followed by a space
现在,前一句话将在下一点停止。我们可以重新映射邪恶的)
:
(define-key evil-normal-state-map ")" 'forward-sentence)
答案 1 :(得分:1)
想想有两个孩子,你会问其中一个孩子的优秀方式吗?
WRT Emacs,忘记密钥,忘记vi-mimicry,从命令开始。 如果命令绑定到某个键,Emacs将在之后告诉您,无需明确地学习它。
Emacs的线索是它的可扩展性。尝试 M-x kill-sentence RET 。不按你想要的方式行事?回到这里提出变更请求,您将在一两分钟内完成: - )
答案 2 :(得分:1)
迟到了,但答案是Evil使用了emacs'句子的定义,与vim不同。要接近vim的版本,请将sentence-end-double-space
设置为nil
:
(setf sentence-end-double-space nil)
如果您只想在句子之间使用一个空格,可以将变量
sentence-end-double-space
设置为nil
,以使句子命令停止为单个空格。然而,这有一个缺点:没有办法区分结束句子的句子和表示缩写的句子。为方便和可靠的编辑,我们建议您遵循两空间惯例。
答案 3 :(得分:0)
当我编辑散文时,我用来解决这个难题的解决方案是使用:
f.
和
F.
它并不像Vim的句子动作那么优雅,但它可以解决问题。您也可以使用" t"命令,如果你不希望光标完全停止。与其他动作命令一样,它可以与其他按键组合用于删除或您想要执行的任何其他操作。