Vim-类型化键和映射键之间的差异?
在Vim的Vim-类型化键和映射键之间的差异?,vim,Vim,在Vim的feedkeys()文档中,对模式t的描述如下: 't' Handle keys as if typed; otherwise they are handled as if coming from a mapping. This matters for undo, opening folds, etc. 这有什么区别?来自映射的键在哪些方面表现不同?为什么这种差异对撤消、打开折叠等很重要?映射序列对于撤消是原子化的 如果您使用多个命令更改文本
feedkeys()
文档中,对模式t
的描述如下:
't' Handle keys as if typed; otherwise they are handled as
if coming from a mapping. This matters for undo,
opening folds, etc.
这有什么区别?来自映射的键在哪些方面表现不同?为什么这种差异对撤消、打开折叠等很重要?映射序列对于撤消是原子化的 如果您使用多个命令更改文本,则“撤消”将逐个更改将其撤消 如果您将相同的命令序列映射到映射,并尝试撤消它,它将在运行映射之前恢复状态更改 例如:文本“12345”的光标位于2上。你打了3次“x”。你需要3次点击“u”才能把文字带回来 如果进行映射:
:map q xxx
按q键后,只需按一次“u”键即可恢复更改
也可从:h映射撤消:
如果在映射序列中包含撤消命令,这将使文本恢复到执行宏之前的状态。这与
原版Vi
那真的很有趣,谢谢!函数是否有类似的行为?我注意到,如果在我的函数中间有<代码>新的<代码>,然后有一些命令,新窗口只出现在这些命令的结果中,而不是首先出现空,然后看到它填充,好像它都是一个原子操作。此外,您还将感兴趣:帮助撤消块
。从:help undo
此使用手动折叠时,折叠不会保存和恢复。只有完全在一个折叠中进行更改才能保持折叠的原样,因为折叠的第一行和最后一行不会更改
是的,当我尝试在版本控制下的文件上使用手动折叠时,我遇到了一些困难--切换分支破坏了折叠。