vim撤消(删除)由imap写的字符!

时间:2011-03-28 20:04:45

标签: vim

在vim中,有没有办法可以删除由i(no)重映射或iab写的文本块? 例如,说我有

  

inoremap xx \ hat {x}

在我的.vimrc文件中,我希望能够通过一两次击键删除\ hat {x}(但不是^ w或dB ..我可以有两个连续的iab只包含文本,所以我需要能够在中间削减abababcdcdcd,如果cdcdcd是iab,比如说“cc”)

任何想法?

2 个答案:

答案 0 :(得分:2)

最后一个干净的解决方案

inoremap xx ^Gu\hat{x}^Gu

(那是 C-g 那里)

没有更奇怪的效果。您甚至可以选择是否要在两端或仅在开始时隔离撤消项目(如果您不介意将hat-x与之后的内容一起撤消,请保留尾随^Gu

现在我使用的打捞信息最终是微不足道的:

:he undo|/break/;+3p

输出:

  

相反,在插入模式下使用,将更改分成两个撤消块   CTRL-G u。如果您希望插入命令可以撤消,这非常有用   部分。例如,每个句子。了| i_CTRL-G_u |

答案 1 :(得分:1)

当撤消撤消最后一次插入时,我经常在映射的开头放置一个<Esc>a

例如:

inoremap xx <Esc>a\hat{x}

让您离开并返回插入模式,以便撤消可以正常工作。如果您输入错误,则可以正确撤消。

我知道这可能是丑陋而无意义的,但有效。我很想知道是否有更好的解决方案来“刷新”撤消。