【问题标题】:Alternatives to using arrows when accessing vi command history访问 vi 命令历史时使用箭头的替代方法
【发布时间】:2011-12-15 12:13:30
【问题描述】:

在 vi/vim 中,当您执行命令或搜索时,它们会被添加到先前命令的列表中。而且,就像在 shell 中一样,它们可以通过向上或向下箭头键检索。这些都很不方便,有没有其他不使用方向键的遍历历史的方法?

【问题讨论】:

  • 对于那些想把它移到 SU 的人,请阅读Vim questions: SO or SU。 SO 目前有 4965 个 Vim 问题,而 SU 上有 939 个问题。在我个人看来,SO 询问 Vim 的地方。
  • 我已经在评论中发布了?!

标签: vim command vi


【解决方案1】:

是的。在正常模式下q: 打开一个带有命令历史记录的 vim 窗口。您可以像使用任何其他 vim 缓冲区一样在其中工作。 Enter 执行命令。 q/q? 对搜索执行相同的操作。

此外,当您键入命令时,您可以按 Ctrl-F 打开命令行窗口并继续在那里编辑命令。

【讨论】:

  • 我也不知道q/q? where options
  • “嘿,伙计,过来,有一个家伙刚刚找到了圣杯!”
【解决方案2】:

您可以在命令行中使用ctrl-nctrl-p 来遍历历史并在通配符匹配之间移动。见:help c_CTRL-N

【讨论】:

  • 啊,这正是我想要的。谢谢。
  • 这对于最近的命令非常有用。如果您只想要以特定字符串开头的命令,则效果不佳。如果你输入:vs然后点击上下箭头,它将在以:vs开头的先前命令之间跳转,而ctrl-n/ctrl-p只会在当前历史中移动
【解决方案3】:

有时我会按下q:,这会给我带来一个包含最新命令的命令行缓冲区。您可以使用 h、j、k、l 导航它,然后在所需命令上按 Enter。

【讨论】:

    【解决方案4】:

    您可以创建命令行模式映射来实现此目的。例如,您可以使用 <Ctrl-j><Ctrl-p> 作为向下和向上箭头的替代方法:

    cnoremap <C-j> <Down>
    cnoremap <C-k> <Up>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 2016-05-08
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 2022-01-25
      • 1970-01-01
      相关资源
      最近更新 更多