Windows の Q10 で多くの書き込みを行った後、キーを押すたびに発生するタイプライターの音に慣れました。少なくとも私にとっては、この種の健全なフィードバックがあることは素晴らしいことです。
一方、Linux では、編集機能があるため、VIM を書くのが大好きです。この機能を VIM に追加するにはどうすればよいですか?
簡単に言えば、インサートモードでキーを押すたびに音を鳴らしたいのです。
Windows の Q10 で多くの書き込みを行った後、キーを押すたびに発生するタイプライターの音に慣れました。少なくとも私にとっては、この種の健全なフィードバックがあることは素晴らしいことです。
一方、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
楽しいアイデア、そしてトロッターの答えに感謝します。ただし、私のシステム(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を使用しました。Do for Vim は、Vim に組み込まれている Python サポートを利用して、各コマンドを個別のスレッドで (非同期的に) 実行します。次のように、このプラグインを使用した結果に非常に満足しています。
function! PlaySound()
:DoQuietly play ~/.vim/support/my_typewriter_sound.wav
endfunction
autocmd CursorMovedI * call PlaySound()
画面のちらつきはなく、個々のキーを押す音が重なり合って、本物のカチャカチャというクリックのカスケードが発生します。
Solaris を使用している場合は、次の一連のスクリプトを使用してカーネル キーボード ドライバーを DTrace できます: http://www.brendangregg.com/DTrace/typewriter-0.75.tar.gz