Vim 想要地图<;S-j>;滚动上一个冒号命令的步骤

Vim 想要地图<;S-j>;滚动上一个冒号命令的步骤,vim,Vim,我正在尝试映射以滚动前面的冒号命令。所以而不是:和 nnoremap: 此绑定的问题是滚动最后一个冒号命令实际上是:,但如果按两次,则会得到: 我如何正确地映射它,以便它输出:如果不在命令栏中,并且如果命令栏中已经有文本,则只输出,我看不到您的行为。如果我按两次(顺便说一下,这是一种复杂的方式,可以说J),我会得到上一个命令行加上字母J。您的命令是为正常模式定义的;由于右侧的:,它将以命令行模式结束J=没有映射到那里(至少没有映射到:nnoremap) 为了能够重复J,您必须为命令行模式定义一

我正在尝试映射
以滚动前面的冒号命令。所以
而不是

nnoremap:
此绑定的问题是滚动最后一个冒号命令实际上是
,但如果按两次
,则会得到


我如何正确地映射它,以便它输出
如果不在命令栏中,并且如果命令栏中已经有文本,则只输出
,我看不到您的行为。如果我按两次
(顺便说一下,这是一种复杂的方式,可以说
J
),我会得到上一个命令行加上字母
J
。您的命令是为正常模式定义的;由于右侧的
,它将以命令行模式结束<代码>J=
没有映射到那里(至少没有映射到
:nnoremap

为了能够重复
J
,您必须为命令行模式定义一个额外的映射:

:cnoremap <S-j> <Up>
:cnoremap
这就省去了
,因为您已经在命令行中了


但是,我不建议这样做,因为这样会使您无法直接键入大写字母J(您仍然可以通过
J
,或者您喜欢说的
,键入大写字母J)。您最好切换到使用不可打印字符的映射(例如,
)。

我看不到您的行为。如果我按两次
(顺便说一下,这是一种复杂的方式,可以说
J
),我会得到上一个命令行加上字母
J
。您的命令是为正常模式定义的;由于右侧的
,它将以命令行模式结束<代码>J=
没有映射到那里(至少没有映射到
:nnoremap

为了能够重复
J
,您必须为命令行模式定义一个额外的映射:

:cnoremap <S-j> <Up>
:cnoremap
这就省去了
,因为您已经在命令行中了


但是,我不建议这样做,因为这样会使您无法直接键入大写字母J(您仍然可以通过
J
,或者您喜欢说的
,键入大写字母J)。您最好切换到使用不可打印字符的映射(例如
)。

您的意思是
shift-J
?那你怎么加入?
你是说
shift-J
?那你怎么加入?我明白了。这完全有道理,谢谢你的澄清。我明白了。这完全有道理,谢谢你的澄清。