问题标签 [redo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
7809 浏览

python - Pythonic 相当于 unshift 或 redo?

我正在学习 Python,我有一种情况,我想使用迭代器中的项目。棘手的部分是,在某些条件下,我想“取消迭代”。也就是说,在循环之前将一个项目放回迭代器的前面。

例如,假设我正在从树上摘苹果。我的水果篮只能装 10 公斤,然后才需要清空。但是我必须先挑选每个苹果,然后才能称重并确定这个苹果是否会超过篮子的容量。

在像 Perl 这样的语言中,我可以unshift()将苹果放回树上,然后让循环表达式重新挑选苹果:

否则我也可以使用redo,它在块顶部恢复处理,而不评估循环表达式。因此,在篮子被清空后,同一个苹果可以重新加工。

对于这类问题,最Pythonic的解决方案是什么?

0 投票
2 回答
973 浏览

ruby - 我可以跳回到在 Ruby 中使用“重做”的方法的开头吗?

Poignant Guide中给出了这个redo关键字的例子:

它应该一直调用new,直到所有三个随机数都是唯一的。但是在我输入这段代码并运行了几次之后,我得到了这个错误:LocalJumpError: unexpected redo. 我在redo别处查找了关键字,看起来它只适用于循环和迭代器。那么为什么在他的例子中尝试这样使用它呢?应该如何重写此方法才能正常工作?

0 投票
2 回答
992 浏览

perl - 用于类似 Makefile 的续行的最干净的 Perl 解析器

我正在编写的 perl 脚本需要解析具有像 Makefile 这样的连续行的文件。即以空格开头的行是前一行的一部分。

我写了下面的代码,但不觉得它很干净或 perl-ish(见鬼,它甚至不使用“重做”!)

有许多边缘情况:奇数位置的 EOF、单行文件、以空行(或非空行或续行)开头或结尾的文件、空文件。我所有的测试用例(和代码)都在这里:http ://whatexit.org/tal/flatten.tar

你能写出通过我所有测试的更干净,perl-ish 的代码吗?

0 投票
10 回答
311853 浏览

vim - 我如何在 Vim 中进行重做(即“撤消撤消”)?

在 Vim 中,我做了太多撤消操作。如何撤消此操作(即重做)?

0 投票
2 回答
820 浏览

iphone - 如何在 CoreData NSManagedObjectContext 中恢复 NSUndoManager 的内容?

我想在CoreData(NSManagedObject)对象上的iPhone应用程序中使用NSUndoManager,这样如果应用程序过早退出(例如,由于来电),我可以保存(并稍后恢复)NSUndoManager的状态。即,与自动丢弃或保存在 NSUndoManager 中累积的更改相反,我想恢复它们,以便用户在重新启动应用程序时可以选择显式丢弃或保存它们。

有没有人有这方面的经验?当应用程序中断时,任何人都可以推荐这种(或替代)方法来管理 NSManagedObjectContext 中的未决更改吗?

0 投票
3 回答
1382 浏览

core-data - 带有核心数据的 NSUndoManager - 重做不起作用

我有一个基于核心数据文档的应用程序,它通过与 NSManagedObjectContext 关联的内置 NSUndoManager 支持撤消/重做。我设置了一些动作,它们在 Core Data 中执行大量任务,通过beginUndoGrouping/将所有这些任务包装到一个撤消组endUndoGrouping中,并由 NSUndoManager 处理。

撤消工作正常。我可以执行几个连续的操作,然后依次撤消每一个操作,并且我的应用程序的状态得到正确维护。但是,永远不会启用“重做”菜单项。这意味着 NSUndoManager 告诉菜单没有要重做的项目。

我想知道为什么 NSUndoManager 似乎在撤消项目后会忘记它们,并且不允许重做?

我应该提到的一件事是,我在打开/创建文档后禁用撤消注册。当我执行一个动作时,我调用enableUndoRegistration, beginUndoGrouping,执行该动作,然后调用processPendingChanges, setActionName:, endUndoGrouping,最后调用disableUndoRegistration。这确保只有特定的操作是可撤消的,并且我在这些之外所做的任何其他数据更改都不会被 NSUndoManager 注意到。这可能是问题的一部分,但如果是这样,我想知道为什么它会影响重做?

提前致谢。

0 投票
2 回答
278 浏览

objective-c - NSUndoManager 不会撤消 NSMutableDictionary 的编辑

我遇到了撤消操作的问题。以下代码不会撤消removeObjectForKey:操作,但重做操作setObject:ForKey:有效。

控制台上的输出如下所示:

我不明白为什么 Object id 不同,尽管 Key id 保持不变。是否对对象进行了一些特殊的撤消/重做处理NSMutableDictionary

谢谢xonic

0 投票
1 回答
156 浏览

logic - Simple program logic to Call method continuously

I am in a situation, in which my program needs to do processing and then wait for some interval, let's say 5 seconds and the do the same processing again.

I don't know how to implement the logic.

I have developed a logic, the code is below:

What this code does: I only have to call this method once, it will do the processing then wait for 5 seconds and then again process.

So far above code is working fine, but i have heard using "goto" statements is not considered good in programming.

I want to know, will there be any side effect of this code or is there any other efficient way of doing the same thing.

0 投票
2 回答
7504 浏览

python - Tkinter Text 小部件中的撤消和重做功能?

我需要在 Tkinter小部件中同时创建Control+ZShift+ Control+函数,以便可以撤消和重做事情。ZText

有谁知道如何做到这一点?

0 投票
8 回答
16820 浏览

java - 如何在文本编辑器中设计撤消和重做?

我项目的一部分是编写一个文本编辑器,用于输入一些规则、编译我的应用程序并运行它。编写编译器已结束并发布测试版。在最终版本中,我们必须在文本编辑器中添加撤消和重做。我使用一个文件并定期保存它以供文本编辑器使用。如何为我的文本编辑器设计撤消和重做?文件持久化的结构有什么变化?