vim:查找最近使用的快捷方式的历史记录

时间:2017-05-04 08:02:43

标签: vim keyboard-shortcuts shortcuts

问题

我正在使用的插件,我的映射或这两者的组合在vim上造成了一些问题。特别是,当我按下特定的键组合时,会发生以下情况:

  • 当前行中的第一个数字减少
  • 它跳到另一行

问题在于,我不知道我所追求的组合是谁。我无法重现它。我是saving-the-buffers-constantly-freak,所以当我'怠慢" (不要在vim上写任何东西)我的手指不自觉地可能进入/退出编辑模式,:wazz,也许还有其他几个,非常快。我必须在这里混合一些导致此问题的快捷方式。 你可能会说"停止做你做的事情"但我无法帮助它。这就像一个问题。无法控制它。但是,在某个地方有一条捷径,它可以做我不想要的东西,而且我无法复制它或在我的vim配置中找到它。

BTW我在map <C-a> <Nop>中设置了.vimrc,因此禁用了自动增量的默认行为。 (参见我之前的问题here

问题

如何查看已使用的历史记录快捷方式? q:没有给我这样的信息。

2 个答案:

答案 0 :(得分:1)

我不知道Vim有什么方法可以检索已被按下的键的历史记录。

作为替代方案,您可以使用您的操作系统功能来执行此操作。

如果您使用的是Linux系统,则可以非常轻松地记录关键事件;尝试在后台运行这个小bash脚本,它将完成工作(没有经过良好测试,可能需要一些修复);当然,所有事件都将被记录,即使是那些在使用Vim时没有发生的事件:

#!/bin/bash

xinput list |
grep -Po 'id=\K\d+(?=.*slave\s*keyboard)' |
xargs -P0 -n1 xinput test |
awk '
    BEGIN { while (("xmodmap -pke" | getline) > 0) k[$2]=$4 }
    /^key press/ {
        cmd = "date +%H:%M:%S"; cmd | getline date; close(cmd)
        printf("%s [ %s ]\n", date, k[$NF])
    }
' |
tee /tmp/keys.log  # <-- pressed keys will be logged here

答案 1 :(得分:0)

您可以输入以下内容来转储活动映射:

:map