用感叹号重复上一个命令? VIM

时间:2010-11-01 06:14:47

标签: vim

当我输入一个巨大的命令时,例如:

:e ~/Projects/foo/app/views/bar.rhtml

Vim不可避免地告诉我,我没有保存当前的缓冲区。是否有一种快速方法可以用感叹号重复命令,而无需重新输入整个命令?

4 个答案:

答案 0 :(得分:8)

:e! #

指定vim文件时,%是当前文件的快捷方式,#是“上一个”(实际上更像是“其他”)文件的快捷方式,在您的情况下是~/.../bar.rhtml

答案 1 :(得分:3)

q:将显示历史记录,您可以直接编辑命令,然后按Enter键再次运行它们,或者您可以按照zigdon的建议进行操作:<up><home><right>!

答案 2 :(得分:2)

:<up><home><right>!

答案 3 :(得分:2)

我所知道的最简单的方法是点击ESC :,然后使用历史记录(^p或向上箭头)再次获取上一个命令。具有讽刺意味的是,在该缓冲区内进行编辑比使用vi更像emacs。

你实际上可以将它绑定到一个带:map ! :^[OA^[[1~^[OC!^M的密钥(每个转义字符和^ M需要是实际的转义字符 - 你可以先输入^V来获取它们)