用 vi/vim 的时候,总是会误把命令历史调出来。原来是把 :q 打成了 q:。
在 Vim 里,q: 不是退出命令,而是打开命令行窗口(command-line window)。这个窗口会列出之前输入过的 Ex 命令,例如 :w、:q、:set number 等。它本质上是一个可以编辑的命令历史列表。
常用方式如下:
q::打开:命令历史窗口。q/:打开/搜索历史窗口。q?:打开?搜索历史窗口。- 在窗口中用普通模式移动到某条历史命令,按
Enter执行。 - 按
Ctrl-C、:q或关闭窗口即可退出命令历史窗口。
如果只是想在命令行里找回上一条命令,不一定要打开命令历史窗口。输入 : 后,可以用方向键或 Ctrl-P、Ctrl-N 在历史命令之间切换:
:
然后按:
Ctrl-P 上一条命令
Ctrl-N 下一条命令
所以,误按 q: 时不用紧张,这不是 Vim 卡住了,只是进入了命令历史窗口。退出窗口后重新输入 :q 即可。
