我正在编写一个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}
中。
为了将原始数据转换为人类可读的表示,我在Python vimgolf客户端中实现了一个示例。
用Ruby实现的官方vimgolf客户端也使用Vim的-w
选项来记录按键。
我知道这并不能回答关于getchar()
的具体问题,但考虑到所述的最终目标,我认为这可能是一个变通方法。