在Q10 在 Windows上写了很多之后,我习惯了每次按键时它发出的打字机声音。至少对我来说,拥有这种声音反馈感觉很棒。
另一方面,在 Linux 上,我喜欢用 VIM 编写它,因为它具有编辑功能。如何将这个功能添加到 VIM?
简单来说,就是想在插入模式下每次按键都播放一个声音。
在Q10 在 Windows上写了很多之后,我习惯了每次按键时它发出的打字机声音。至少对我来说,拥有这种声音反馈感觉很棒。
另一方面,在 Linux 上,我喜欢用 VIM 编写它,因为它具有编辑功能。如何将这个功能添加到 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()
请注意,上面的函数调用,我知道它适用于 Mac,需要在 Linux 上afplay
替换。play
在 Windows 上,我不知道。
所以你知道上面发生了什么,我们首先创建一个名为的函数PlaySound
,它可以输出到afplay
. 然后我们设置一个自动命令,只要光标在插入模式下移动,就会触发该命令。当它触发时,它会调用PlaySound
.
该插件确实存在。你可以在这里找到它:https ://github.com/osyo-manga/vim-sound
但是,您需要自己添加音效文件,您可以在此处找到:http: //www.soundjay.com/typewriter-sounds.html
如果您使用的是 Solaris,则可以使用以下脚本集 DTrace 内核键盘驱动程序:http ://www.brendangregg.com/DTrace/typewriter-0.75.tar.gz
你应该试试Qweritckle
这是一个用于 Linux 的打字机声音模拟器。
有趣的想法,感谢Trotter的回答。但是,使用您在我的系统(Ubuntu 14.04)中找到的答案,Vim 在每次按键时都会出现空白并显示以下消息:
按 ENTER 或键入命令继续
基于在https://vi.stackexchange.com/questions/1942/how-to-execute-shell-commands-silently上关于在 Vim 中静默执行命令主题的讨论,我尝试了:
function! PlaySound()
silent! exec '!play ~/.vim/support/my_typewriter_sound.wav &' | :redraw!
endfunction
autocmd CursorMovedI * call PlaySound()
它会自动清除空白屏幕,但每次按键后我都能看到闪烁,并且只有在最后一次按键完成后才会发出声音,从而产生非常不自然和癫痫的体验。在同一个问题中,OliverUv 给出了 Vim 同步执行的重要解释,这意味着它等待继续,直到执行完成。他建议使用 vim-dispatch 或 Neomake 进行异步执行,但最后我选择了Do for Vim,因为它更适合执行任意 shell 命令而不是特定的编译任务。Do for Vim 利用 Vim 中内置的 Python 支持在单独的线程(异步)上运行每个命令。我对使用此插件的结果感到非常满意,如下所示:
function! PlaySound()
:DoQuietly play ~/.vim/support/my_typewriter_sound.wav
endfunction
autocmd CursorMovedI * call PlaySound()
屏幕没有闪烁,并且各个按键声音重叠,以获得真实的咔哒声级联点击。