经过很多写作 Windows上的Q10, ,我已经习惯了打字机声音,每次按键时,它会发出。至少对我来说,有这种声音反馈真是太好了。

另一方面,在Linux上,我喜欢编辑功能,因为它是编辑功能。如何将此功能添加到VIM?

简单地说, 每次在插入模式下按键时,我都想播放声音。

有帮助吗?

解决方案

好吧,这有点疯狂,但似乎有效。首先,以AIFF格式抓住打字机声音。然后将打字机的声音放在 ~/.vim/support/my_typewriter_sound.aiff. 。然后将以下内容添加到您的 ~/.vimrc.

function! PlaySound()
  silent! exec '!afplay ~/.vim/support/my_typewriter_sound.aiff &'
endfunction
autocmd CursorMovedI * call PlaySound()

请注意,以上功能调用 afplay, ,我知道它可以在Mac上工作,需要替换 play 在Linux上。在窗户上,我不知道。

因此,您知道上面发生了什么,我们首先创建了一个称为的函数 PlaySound 炮弹到 afplay. 。然后,我们设置了一个自动指挥官,该自动量可以随时以插入模式移动。开火时,它会打电话 PlaySound.

其他提示

插件确实存在。你可以在这里找到它: https://github.com/osyo-manga/vim-sound

但是,您需要自己添加声音效果文件,您可以在此处找到:http://www.soundjay.com/typewriter-sounds.html

如果您在Solaris上,则可以使用这组脚本来处理内核键盘驱动程序: http://www.brendangregg.com/dtrace/typewriter-0.75.tar.gz

你应该试试 qweritckle

这是Linux的打字机声音模拟器。

有趣的主意,并感谢您的答案。但是,使用您在系统中发现的答案(Ubuntu 14.04),每个键在每个按键中都空白了:

按Enter或键入命令继续

基于关于在VIM中默默执行命令主题的讨论 https://vi.stackexchange.com/questions/1942/how-to-to-execute-shell-commands-inally 我试过了:

function! PlaySound()
  silent! exec '!play ~/.vim/support/my_typewriter_sound.wav &' | :redraw!
endfunction
autocmd CursorMovedI * call PlaySound()

这会自动清除空白屏幕,但是我可以看到每键机之后的闪烁,并且声音只有在最后一个键盘完成后才产生,这是一种不自然和癫痫的体验。在同一问题中,奥利弗鲁(Oliveruv)给出了重要的解释,即VIM同步执行,这意味着它需要继续执行直到执行完成。他建议使用异步执行的vim-dispatch或neomake,但最后我选择了 为VIM做 因为它更适合执行任意外壳命令,而不是特定的汇编任务。为VIM使用VIM中的内置python支持在单独的线程上运行每个命令(异型)。我对使用此插件的结果感到非常满意,如下所示:

function! PlaySound()
  :DoQuietly play ~/.vim/support/my_typewriter_sound.wav
endfunction
autocmd CursorMovedI * call PlaySound()

屏幕没有闪烁,单个按键声音与单击的真实拍打级联反对。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top