我如何知道给定的命令在vim中做了什么(如果有的话)?

我如何知道给定的命令在vim中做了什么(如果有的话)?,vim,Vim,我想映射,u,以在可视化模式下取消对代码块的注释,但首先我想确保,u没有做其他重要的事情 我目测地选择了三行,然后键入,u,我在屏幕底部得到了消息(其中:输入命令):“3行已更改” 台词没有改变,但在某些情况下可能会改变。显然,vim声称执行了一些命令,但是什么呢 我键入了:map和,u未被列为已重新映射。所以我键入:help,u,它告诉我“对,u没有帮助”(读:对你没有帮助!) my.vimrc中没有、u或u。我还没有把逗号重新定义为我的领导者 如果它是unix命令行,我会键入which,u,

我想映射
,u
,以在可视化模式下取消对代码块的注释,但首先我想确保
,u
没有做其他重要的事情

我目测地选择了三行,然后键入
,u
,我在屏幕底部得到了消息(其中:输入命令):“3行已更改”

台词没有改变,但在某些情况下可能会改变。显然,vim声称执行了一些命令,但是什么呢

我键入了
:map
,u
未被列为已重新映射。所以我键入:help
,u
,它告诉我“对
,u
没有帮助”(读:对你没有帮助!)

my.vimrc中没有
、u
u
。我还没有把逗号重新定义为我的领导者

如果它是unix命令行,我会键入
which,u
,但我不知道vim中有任何等效的命令行


我如何知道给定命令在vim的任何特定运行实例中做了什么(如果有的话)?

在可视化模式下,逗号除了将所选文本小写外,什么也不做

这意味着您可以安全地使用
,u
进行视觉模式映射:您仍然可以使用
u
,但是
后面紧跟着
u
将执行您想要的操作

:map
命令仅列出映射。因为内置操作符不是映射,所以您将无法在那里看到它们

当“快捷方式”没有出现在
:map
中时,请尝试vim的精彩文档:

:help v_u " shows help for u in visual mode (note the v_)
如果您从
:map
:help
中什么也得不到,使用这些键进行映射可能不会完全没有问题。可能需要一些尝试和错误

建议如下:


:第章,和。

听起来您似乎已经基本了解vim如何解释给定命令(“在视觉模式下,它忽略逗号,因此将u解释为u”),以便询问vim如何解释命令。我担心可能是这样的,但我想知道是否有一些命令解析器显示或一些隐藏的功能,将采取“,”u“,并告诉我你在告诉我什么。哦,好吧,你的答案在其他方面非常有用。那个“命令解析器”是你的大脑,在你获得一些经验后,它工作得最好。没错,但这是一个元答案:“我如何计算x?”“通过学习计算x”。我现在怀疑在这种情况下最好的具体答案是一个过程,比如1)删除某些字符,2)在:map中查找所有或部分剩余字符,3)每个模式都有一个不同的忽略字符列表;删除这些字符,4)每个模式都有一个不同长度的已用命令列表;找到该列表并查找最长的序列。。。。我不知道是否记录了此过程,或者在使用它们的vim代码之外是否存在此类特定于模式的列表。另外:你的回答帮助了我,我对此表示感谢。值得注意的例外是
zsomething
gssomething
,但大多数命令都只有一个字符长。当您遇到一个多字符命令时,它是一个。未在
:map
和b中列出。不属于上述三类,假设这是一个复合命令是最明显和最安全的道路。在这种情况下,针对您感兴趣的特定模式,分别查找每个角色
:viusage
有各种模式下可用的内置命令的完整列表。哇,那:viusage是一个值得研究的宝库。我从未在我记忆中的学习vi(m)书中提到过它。谢谢你指出这一点。