这篇文章说“Emacs有重做,因为你可以在撤销的时候反转方向,从而撤销撤销”。

这是什么意思?用户如何使用Emacs“重做”?


当前回答

默认情况下,Emacs中的重做需要按C-g,然后撤销。

但是也可以使用Emacs内置的undo来实现重做命令。

undo-fu包使用Emacs内置的撤销功能来公开撤销和重做。


编辑,撤销fu现在已经集成到邪恶模式(如果你是一个邪恶模式的用户)。

例子:

(use-package undo-fu)
(use-package evil
  :init
  (setq evil-undo-system 'undo-fu))

其他回答

我找到了重做。el非常方便地执行“正常的”撤销/重做,我通常将它绑定到C-S-z和撤销到C-z,就像这样:

(when (require 'redo nil 'noerror)
    (global-set-key (kbd "C-S-z") 'redo))

(global-set-key (kbd "C-z") 'undo)

只需下载该文件,将其放在lisp路径中,并将上述文件粘贴到您的.emacs中。

撤消:C-_

撤销后重做:C-g C-_

在C-_上多次输入以重做被C-_撤消的内容 若要多次重做emacs命令,请执行命令,然后键入C-xz,然后在z键上键入多次以重复该命令(当您想多次执行一个宏时很有趣)

默认情况下,Emacs中的重做需要按C-g,然后撤销。

但是也可以使用Emacs内置的undo来实现重做命令。

undo-fu包使用Emacs内置的撤销功能来公开撤销和重做。


编辑,撤销fu现在已经集成到邪恶模式(如果你是一个邪恶模式的用户)。

例子:

(use-package undo-fu)
(use-package evil
  :init
  (setq evil-undo-system 'undo-fu))

对于那些想要拥有更常见的撤消/重做功能的人,有人编写了undo-tree.el。它提供了非emacs撤消的外观和感觉,但提供了对撤消历史的整个“树”的访问。

我喜欢Emacs的内置撤销系统,但发现这个包非常直观。

以下是该文件本身的评论:

Emacs has a powerful undo system. Unlike the standard undo/redo system in most software, it allows you to recover any past state of a buffer (whereas the standard undo/redo system can lose past states as soon as you redo). However, this power comes at a price: many people find Emacs' undo system confusing and difficult to use, spawning a number of packages that replace it with the less powerful but more intuitive undo/redo system. Both the loss of data with standard undo/redo, and the confusion of Emacs' undo, stem from trying to treat undo history as a linear sequence of changes. It's not. The `undo-tree-mode' provided by this package replaces Emacs' undo system with a system that treats undo history as what it is: a branching tree of changes. This simple idea allows the more intuitive behaviour of the standard undo/redo system to be combined with the power of never losing any history. An added side bonus is that undo history can in some cases be stored more efficiently, allowing more changes to accumulate before Emacs starts discarding history.

Doom Emacs用户,我希望你已经滚动到这里或在页面上搜索“Doom”了……

毁灭Emacs打破了香草Emacs重做快捷方式: C-g C-/ C-/ C-/ etc(或C-g C-_ C-_ C-_ etc) ...相反,它一直在撤销。 Doom Emacs也打破了撤销树重做快捷方式,在其他答案中提到,这对spacemacs等很有用: S-c -/(又名c -?) ...而不是抛出错误“C-?”没有定义”。

你需要的是:

处于邪恶模式(C-z切换进入和退出邪恶模式)(在邪恶模式应该看到蓝色光标,而不是橙色光标)和 进入“命令模式”,也就是“正常模式”(而不是“插入模式”)(Esc切换到命令模式)(应该看到块光标,而不是行光标),然后是 U代表撤销 重做的C-r