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

问题描述 投票:3回答:1

打开命令行并按向上箭头或向下箭头键时,它会显示上次键入的命令。有没有办法映射这种行为?例如,当我按下ctrl p时,我想让vim向我展示我的上一个命令(使vim像按下向上箭头一样起作用)。下一个命令的ctrl n同样。

我该如何实现?

vim command mapping line
1个回答
2
投票

CTRL-PCTRL-N击键已经执行所需的操作,它们搜索您的命令历史记录。请参阅:help c_CTRL-P,其中说明了它如何“从历史记录中调用较旧的命令行。”

:help c_CTRL-PCTRL-P的工作方式与向上和向下箭头略有不同,因为箭头只会浏览历史记录中以您键入的字符开头的项目。因此,CTRL-N,空格,向上箭头将转到您用来打开文件进行编辑的最后一个命令。有关详细信息,请参见:e

您可以使用:help c_<Up>命令重新映射它们,使其与对应的对象相同,该命令将为在Vim命令行中键入的击键创建映射。

例如,要使:help c_<Up>cnoremap的行为与箭头相同(完全遵守前缀),可以使用以下命令创建(有些天真)的映射:

CTRL-P

此方法的缺点是CTRL-Ncnoremap <C-P> <Up> cnoremap <C-N> <Down> 在野菜单上的行为不同,因此更完整的映射将是:

CTRL-P

这将保留野菜单中CTRL-Ncnoremap <expr> <C-P> wildmenumode() ? "\<C-P>" : "\<Up>" cnoremap <expr> <C-N> wildmenumode() ? "\<C-N>" : "\<Down>" 的原始行为。

© www.soinside.com 2019 - 2024. All rights reserved.