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

Hen*_*rik 5 vim

如何执行再次列出的命令

:history
Run Code Online (Sandbox Code Playgroud)

vim中的选项.有数字显示.是手动复制命令的唯一方法,然后重新输入吗?或者有类似shell脚本的东西.

jur*_*lic 8

q:在正常模式下使用快捷方式打开交互式命令历史窗口.您只需移动到正确的命令并按下即可执行它Enter.您可以在此处找到更多信息和其他访问历史记录的方法.


rom*_*inl 8

:history 只有你在那里看它.

要重新执行上一个命令,您有两个选择:

  • 在命令提示符下使用<Up><Down>:

    :m10
    (do stuff)
    :<Up>
    
    Run Code Online (Sandbox Code Playgroud)
  • 使用"命令行窗口":

    您可以调用它q:并使用搜索导航并使用我们都喜欢的美丽的普通模式命令.

    将光标定位在一条线上并点击<CR>以重新执行该命令.

    编辑命令并单击<CR>以执行新命令.

    您可以退出命令行窗口:q.

    :help cmdline-window.

  • 作为一种特殊情况,要重新运行您输入的最新命令,还有第三种方法:您可以从正常模式执行`@:`. (2认同)

Jon*_*han 6

如果 Vim 是用 +eval 编译的,你可以使用histget( {history} [, {index}])

:exe histget('c', 15)
Run Code Online (Sandbox Code Playgroud)

这输入起来不太方便,因此您还可以创建用户定义的命令:

:com -nargs=1 HI exe histget('c', <args>)
Run Code Online (Sandbox Code Playgroud)

此后,您可以使用 HI {index} 执行历史条目:

:HI 15
Run Code Online (Sandbox Code Playgroud)


cfo*_*ish 5

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

:e fil<UP><ENTER>
Run Code Online (Sandbox Code Playgroud)

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