这篇文章说“Emacs有重做,因为你可以在撤销的时候反转方向,从而撤销撤销”。
这是什么意思?用户如何使用Emacs“重做”?
这篇文章说“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))
其他回答
如果您需要重做上次的操作,请执行以下操作。
ESC 执行另一个撤销(C + /)
小心重做时的撤销树怪癖!
许多流行的“入门套件”(prelude, purcell, spacemacs)都捆绑了撤销树。大多数(全部?)甚至自动启用它。如前所述,撤销树是可视化和遍历撤销/重做树的方便方法。前奏甚至给了它一个关键和弦(uu),还有c - xu。
问题是:undo-tree似乎破坏了Emacs默认的和众所周知的重做绑定:C-g C-/。
相反,你可以使用这些对称键来撤销/重做:
C-/ undo
C-S-/ redo
这些是有用的,因为有时你想快速重做而不打开可视化工具。
Emacs 28添加了一个重做命令(称为撤消重做)。
如果您想要更典型的撤消/重做,可以使用以下命令。
(global-set-key (kbd "C-z") 'undo-only)
(global-set-key (kbd "C-S-z") 'undo-redo)
要访问此功能(也可以使用非线性历史记录,请参阅undo-fu,这是内置在undo中的emacs上的精简包装器)。
取消一次:C-/ 取消两次:C-/ C-/
在撤消后立即重做一次:C-g C-/ 取消后立即重做两次:C-g C-/ C-/。注意C-g没有重复。
再次立即撤销一次:C-g C-/ 再次立即撤销,两次:C-g C-/ C-/
重做一次,同样的…
如果您在上一次执行undo命令后按了任何键(无论是键入字符还是只是移动光标),那么在执行下一次撤销/重做命令之前,不需要键入C-g。C-g只是一个安全的键,它本身没有任何作用,但可以作为一个非撤消键来表示撤消序列的结束。按另一个命令,如C-f也可以;它只是将光标从你的位置移动。
如果你在无意中按了C-g或其他命令,而你现在正在错误的方向上撤销,只需按C-g就可以再次逆转你的方向。在你到达你想要的撤销之前,你将不得不在所有偶然的重做和撤销中撤销,但如果你只是继续按C-/,你最终会到达你想要的状态。事实上,如果你按C-g一次,然后按C-/足够多次,缓冲区曾经处于的每个状态都是可以到达的。
除了C-/,还有C-_、C-x u和M-x undo。
有关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))