我正在编写一个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()
的解决方案。
答案 0 :(得分:1)
“我的最终目标是像键盘记录程序那样获取键盘输入,但仅对于vim如此,这样之后我就可以分析数据了。”
Vim有一个选项-w {scriptout}
,用于将按键记录到文件{scriptout}
。
为了将原始数据转换为人类可读的表示形式,我实现的an example中有Python vimgolf client。
用Ruby实现的official vimgolf client也利用Vim的-w
选项来记录按键。
我知道这不能回答有关getchar()
的特定问题,但是我认为,鉴于上述最终目标,这可能是一种解决方法。