在VIM中使用:history选项重新执行命令

7
如何再次执行在历史命令中列出的命令?
:history

Vim中的选项。有一些数字显示。复制命令的唯一方式是手动复制并重新输入吗?还是像Shell脚本中那样有其他方法。


当您使用 q: 打开历史记录时,您可以使用 / 进行搜索。 - aymericbeaumet
4个回答

12

:history 只是提供给你查看使用的历史命令。

要重新执行以前的命令,有两个选项:

  • 在命令提示符中使用<上箭头><下箭头>

    :m10
    (do stuff)
    :<Up>
    
  • 使用"命令行窗口":

    您可以使用q:调用它,然后使用搜索进行导航并使用我们都喜欢的美丽正常模式命令。

    将光标定位在一行上并按下<CR>重新执行命令。

    编辑命令并按下<CR>执行新命令。

    您可以使用:q退出命令行窗口。

    请参阅:help cmdline-window


3
作为一个特殊情况,要重新运行您输入的最近命令,还有第三种方式:您可以从正常模式下执行 @: - Ben
@Ben 你的评论值得成为一个答案。 - Meitham

10

在正常模式下,我可以使用q:快捷键打开交互式命令历史窗口。您只需移动到相应的命令,然后按下Enter执行即可。您可以在这里找到更多信息和其他访问历史记录的方法。


6
如果 Vim 编译时添加了 +eval 选项,你可以使用 histget( {history} [, {index}]) 函数。
:exe histget('c', 15)

那样输入不太方便,所以您还可以创建用户定义命令:
:com -nargs=1 HI exe histget('c', <args>)

之后,您可以使用HI {index}来执行历史记录条目:

:HI 15

5

我喜欢做的是在命令中输入前几个字符,然后按<UP>键。例如,如果您想重复编辑文件file.txt的命令,您可以:

:e fil<UP><ENTER>

如果第一个<UP>没有给你想要的命令,继续按<UP>直到找到你需要的命令为止。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接