4

我爱vim。它给我一种直接进入文本并按照我的意愿弯曲的感觉。

那就是说。我也喜欢 Clojure、Clojurescript、Lisp 和 Org-mode。我真的,真的很想喜欢 Emacs,在 Evil 模式下,我给了它 6-8 周,然后我沮丧地放弃了。

我正在考虑再试一次,因为我已经看到了一些非常棒的使用 ractive.js 和 org-mode 进行文学编程的例子。但这次我想提前计划。我有一个简短的事情清单,在我不顾一切地充电之前,我想知道如何去做(如果,事实上,我有足够的勇气再次去做的话):

  • 句子和段落动议。我写了一些代码,但我写了更多的纯文本。当我编辑时,我通常会在一两句话的结尾进行更改/删除。我无法让它在邪恶模式下工作,iirc 甚至设置了一个标志,似乎表明它是可能的,但我无法让它工作。邪恶已经想出这个动议了吗?如果不是,我将如何告诉它这个议案?
  • 领导者地图和元效率地图。直到我发现了领导者地图和制作地图的地图,我才真正开始在 vim 中变得很棒。没什么太疯狂的——我只是创建了一个地图来打开我的 .vimrc,并在 .vim 文件中设置了一些缩写,这样我在意识到我需要它的几秒钟内就有了一个永久的地图。emacs 中的等效技术可能是什么?如何以 vim-ish(即最小和弦)方式制作地图?对我来说是 ilisp 还是 bust ?
  • 缓冲命令。为了改变你正在处理的文件,我不太明白有 2-4 个和弦的逻辑。我愿意学习——这不像我真的使用 vim 缓冲区,我只是一直低效地打开文件——但如果找到一个不能说服我在我输入 vim 方式时输入的教程会很好我将走上邪恶的道路。

编辑器之战很愚蠢,emacs 有很多用途,但我喜欢 home row!有没有一种方法可以让我获得 emacs 操作系统的强大功能,同时保留我所学的这个体面的编辑器?

4

4 回答 4

7
  • 句子和段落动作:我建议你给出一些不适合你需要的示例命令。我对邪恶的动作键很满意。
  • 领导者地图: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-chordand的组合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 "[\\.\\?\\!] +") ;; . or ? or ! followed by spaces.

现在正向句子将在下一点停止。我们可以重新映射邪恶的)

    (define-key evil-normal-state-map ")" 'forward-sentence)
于 2013-11-28T10:32:08.960 回答
1

来晚了,但答案是 Evil 使用 emacs 对句子的定义,这与 vim 的不一样。要接近 vim 的版本,请将其设置sentence-end-double-spacenil

(setf sentence-end-double-space nil)

Emacs 手册警告:

如果您只想在句子之间使用一个空格,您可以将变量设置sentence-end-double-spacenil使句子命令停止为单个空格。但是,这有一个缺点:无法区分结束句子的句点和表示缩写的句点。因此,为了方便可靠的编辑,我们建议您遵循两个空格的约定。

于 2014-07-30T13:51:00.310 回答
1

想想有两个孩子,你会问一个像另一个那么优秀吗?

WRT Emacs,忘记键,忘记 vi 模仿,从命令开始。如果一个命令绑定到一个键,Emacs 会在之后告诉你,不需要显式学习。

Emacs 的线索是它的可扩展性。试试M-x kill-sentence RET。没有按照你想要的方式行事?回到这里请求更改,您将在一两分钟内得到它:-)

于 2013-11-28T08:13:46.587 回答
1

我在编辑散文时用来解决这个困难的解决方案是使用:

f.

F.

它不像 Vim 的句子动作那么优雅,但它确实有效。如果您不希望光标完全停在句号上,也可以使用“t”命令。与其他运动命令一样,它可以与其他击键组合以进行删除或您想做的任何其他操作。

于 2017-03-02T11:03:07.283 回答