VIM - 如何让撤消让我回到之前的模式?
VIM - How to I make Undo put me back in what ever mode I was on previously?
我经常在正常模式下编辑东西只是为了意识到我的更改不是故意的,因此,我撤消然后按 K/L/J/H 继续但同时我已经处于插入模式,所以我有先摆脱它。
我想在我的 .vimrc 中插入一条规则,让我回到我所做的任何更改之前的模式。
IE: shift+s (删除行并开始编辑) -> undo : 回到正常模式
奖励:ciw -> asdahsdasdh -> 撤消:回到正常模式
PS:我实际上是通过 Command+Z 使用撤消,这是 MacOSX 的默认撤消组合。
OS X 正在捕获 Cmdz 键盘事件并在应用程序级别处理撤消,因此任何映射<D-z>
将被忽略。但是,您可以覆盖它以执行您想要的操作。
首先,将映射添加到您的 .vimrc:
if has("gui_running")
inoremap <D-z> <Esc>:undo<CR>
endif
重新启动 MacVim 以确保 .vimrc 已重新加载。
为了让它工作你还需要告诉 MacVim 不要使用 Cmdz 作为 "Undo" 菜单项.
(这些说明基于 Yosemite/El Capitan,但与旧版本相似。)
- 转到“系统偏好设置”应用程序。
- 单击键盘图标。
- 单击“快捷方式”部分。
- 单击左栏中的“应用程序快捷方式”。
- 单击“+”按钮添加新规则。
- 从应用程序下拉菜单中选择 MacVim。
- 在“菜单标题”框中键入 "Undo"(仅此而已)。
- 单击“键盘快捷键”框,然后选择一些您永远不会实际使用的快捷键。
- 单击 "Add",然后关闭系统偏好设置。
(我选择了ShiftCtrlOptCmdx.)
现在回到 MacVim,如果你下拉编辑菜单,"Undo" 应该有你选择的组合键,你的 Cmd z 快捷方式应该按照您的描述工作。
我经常在正常模式下编辑东西只是为了意识到我的更改不是故意的,因此,我撤消然后按 K/L/J/H 继续但同时我已经处于插入模式,所以我有先摆脱它。
我想在我的 .vimrc 中插入一条规则,让我回到我所做的任何更改之前的模式。
IE: shift+s (删除行并开始编辑) -> undo : 回到正常模式 奖励:ciw -> asdahsdasdh -> 撤消:回到正常模式
PS:我实际上是通过 Command+Z 使用撤消,这是 MacOSX 的默认撤消组合。
OS X 正在捕获 Cmdz 键盘事件并在应用程序级别处理撤消,因此任何映射<D-z>
将被忽略。但是,您可以覆盖它以执行您想要的操作。
首先,将映射添加到您的 .vimrc:
if has("gui_running")
inoremap <D-z> <Esc>:undo<CR>
endif
重新启动 MacVim 以确保 .vimrc 已重新加载。
为了让它工作你还需要告诉 MacVim 不要使用 Cmdz 作为 "Undo" 菜单项.
(这些说明基于 Yosemite/El Capitan,但与旧版本相似。)
- 转到“系统偏好设置”应用程序。
- 单击键盘图标。
- 单击“快捷方式”部分。
- 单击左栏中的“应用程序快捷方式”。
- 单击“+”按钮添加新规则。
- 从应用程序下拉菜单中选择 MacVim。
- 在“菜单标题”框中键入 "Undo"(仅此而已)。
- 单击“键盘快捷键”框,然后选择一些您永远不会实际使用的快捷键。
- 单击 "Add",然后关闭系统偏好设置。
(我选择了ShiftCtrlOptCmdx.)
现在回到 MacVim,如果你下拉编辑菜单,"Undo" 应该有你选择的组合键,你的 Cmd z 快捷方式应该按照您的描述工作。