【发布时间】:2020-10-28 15:28:06
【问题描述】:
我正在编写一个 vim 插件并使用 getchar() 来获取输入键,但是它需要我基本上双击我想要输入的每个键。我的最终目标是像键盘记录器一样获得键盘输入,但仅限于 vim,所以之后我可以分析数据。
很遗憾无法从https://vim.fandom.com/wiki/Wait_for_user_input_(getchar)_without_moving_cursor 工作中提出建议。
这是我插件中的一段代码:
function! s:getchar()
let chr = getchar()
if chr =~ '^\d\+$'
let chr = nr2char(chr)
endif
python3 sample.gather()
endfunction
au CursorMoved * call s:getchar()
到目前为止,我只使用 python 将时间戳放在按下的键旁边。
我对这个主题做了相当多的研究,但无法找到如何在 vim 中正确使用getchar() 的解决方案。
【问题讨论】:
-
getchar()根本不需要按<CR>。 -
或许,你也可以解释一下为什么简单的“q”对你不利。
-
@Matt q 有时间戳吗?我会阅读更多关于它的内容,谢谢。我需要时间戳来区分,例如:“jjj”键入没有延迟和相同的序列,但间隔为 1 分钟或其他,因为存在差异!
-
@romainl 好吧,它会将您发送到命令模式并等待输入密钥,这就是我的意思
-
@SumLare 触发自动命令的按键与
getchar()无关。如果您不希望第一次按键,那么您将不得不找到另一种不涉及按键的方式来执行getchar()。
标签: vim vim-plugin getchar