当我输入一个巨大的命令时,例如:
:e ~/Projects/foo/app/views/bar.rhtml
Vim不可避免地告诉我,我没有保存当前的缓冲区。是否有一种快速方法可以用感叹号重复命令,而无需重新输入整个命令?
答案 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
来获取它们)