gpt4 book ai didi

Vim - 命令行 - 上一个和下一个命令键映射

转载 作者:行者123 更新时间:2023-12-04 21:44:28 25 4
gpt4 key购买 nike

打开命令行并按向上箭头或向下箭头键时,它会显示上次键入的命令。有没有办法映射这种行为?例如,当我按 ctrl p 时, 我想让 vim 显示我之前的命令(让 vim 表现得好像我按下了向上箭头)。 ctrl n 也是一样为下一个命令。

我怎样才能做到这一点?

最佳答案

CTRL-PCTRL-N击键已经做你想做的,他们搜索你的命令历史。见 :help c_CTRL-P ,这解释了它将如何“从历史中调用旧的命令行”。

方式CTRL-PCTRL-N work 与向上和向下箭头略有不同,因为箭头只会穿过历史记录中以您输入的字符开头的项目。所以:e 、空格、向上箭头将转到您用来打开文件进行编辑的最后一个命令。见 :help c_<Up> 详情。

您可以使用 cnoremap 重新映射它们,以便它们与对应的对象执行相同的操作。命令,它为在 Vim 命令行中键入的击键创建映射。

例如,使 CTRL-PCTRL-N行为与箭头相同(完全尊重前缀),您可以使用以下命令创建(有点幼稚)映射:

cnoremap <C-P> <Up>
cnoremap <C-N> <Down>

这种方法的缺点是 CTRL-PCTRL-N在wildmenu 上表现不同,因此更完整的映射将是:
cnoremap <expr> <C-P> wildmenumode() ? "\<C-P>" : "\<Up>"
cnoremap <expr> <C-N> wildmenumode() ? "\<C-N>" : "\<Down>"

这将保留 CTRL-P 的原始行为和 CTRL-N在野生菜单中。

关于Vim - 命令行 - 上一个和下一个命令键映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60355339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com