有没有一种方法可以在vim中使用getchar而不需要在每个输入键之后按Enter键?

问题描述

我正在编写一个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()的解决方案。

解决方法

“我的最终目标是像键盘记录程序那样获取键盘输入,但仅对于vim如此,这样之后我就可以分析数据了。”

Vim有一个选项-w {scriptout},用于将按键记录到文件{scriptout}

为了将原始数据转换为人类可读的表示形式,我实现的an example中有Python vimgolf client

用Ruby实现的official vimgolf client也利用Vim的-w选项来记录按键。

我知道这不能回答有关getchar()的特定问题,但是我认为,鉴于上述最终目标,这可能是一种解决方法。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...