Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VIM-如何使撤销将我恢复到以前的模式?_Vim_Macvim_Undo - Fatal编程技术网

VIM-如何使撤销将我恢复到以前的模式?

VIM-如何使撤销将我恢复到以前的模式?,vim,macvim,undo,Vim,Macvim,Undo,我经常在正常模式下编辑东西,但却意识到我的更改不是故意的,因此,我撤销,然后按K/L/J/H继续,但同时我已经处于插入模式,所以我必须先退出 我想在我的.vimrc中插入一条规则,使我回到我刚刚进行任何更改之前的模式 IE:shift+s(删除行并开始编辑)->撤消:返回正常模式 奖励:ciw->asdahsdasdh->undo:返回正常模式 PS:实际上,我正在将Undo与Command+Z一起使用,这是默认的MacOSX Undo组合。OSX正在捕获Cmdz键盘事件并在应用程序级别处理Un

我经常在正常模式下编辑东西,但却意识到我的更改不是故意的,因此,我撤销,然后按K/L/J/H继续,但同时我已经处于插入模式,所以我必须先退出

我想在我的.vimrc中插入一条规则,使我回到我刚刚进行任何更改之前的模式

IE:shift+s(删除行并开始编辑)->撤消:返回正常模式 奖励:ciw->asdahsdasdh->undo:返回正常模式

PS:实际上,我正在将Undo与Command+Z一起使用,这是默认的MacOSX Undo组合。

OSX正在捕获Cmdz键盘事件并在应用程序级别处理Undo,因此
的任何映射都将被忽略。但是,您可以覆盖它来执行您想要的操作

首先,向.vimrc添加映射:

if有(“gui\u正在运行”)
重新映射:撤消
恩迪夫
重新启动MacVim以确保.vimrc已重新加载

要使其正常工作,您还需要告诉MacVim不要将Cmdz用于“撤消”菜单项

(这些说明基于约塞米蒂/埃尔卡皮坦,但与旧版本类似。)

  • 转到系统首选项应用程序
  • 单击键盘图标
  • 单击快捷方式部分
  • 单击左列中的应用程序快捷方式
  • 单击“+”按钮添加新规则
  • 从应用程序下拉列表中选择MacVim
  • 在菜单标题框中键入“撤消”(仅此而已)
  • 点击键盘快捷键框,选择一些你永远不会使用的快捷键
  • 单击“添加”,然后关闭系统首选项
  • (我选择了ShiftCtrLopCmdx。)


    现在回到MacVim,如果您下拉“编辑”菜单,“撤消”应具有您选择的组合键,并且您的Cmdz快捷方式应如您所述工作。

    撤消时您是否已经处于正常模式?我假设你通过按
    u
    来撤销?如果我使用u,那是正确的,我没有意识到这会让任何人感到困惑,我只是太习惯于使用command+z(默认macosx撤销),以至于我还没有真正开始使用u,我会回答我的问题。@JoaoCarlos我担心真正最简单的解决方法是停止使用command+z。我也是Mac的用户。但是使用escape+u更自然,这也是Vim的使用方式。但有一点非常重要:我将我的caps lock钥匙重新映射到esc。没有它我活不下去。这是最初使用这些编辑器时键盘的原始位置。我能为你做这件事。我还使用Karabiner(同一个网站)控制+空间作为caps lock重新映射(不想丢失它,但很少使用)。埃斯佩罗·特·阿朱达多!我的caps lock已经是ESC了,我也用Seil重新映射了:)至于caps lock,我并没有真正使用它,我总是使用shift+key来获得大写版本。我同意使用U将是最简单的解决方案。然而,我想知道这是否可能,因为这是一种很难改变的习惯。奥布里加多:)完美。这是不充分的。因为我有时使用Phpstorm,所以我也会重复这个过程。谢谢:)