手紙を書くときにVim Play TypewRiterを再生するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4418364

  •  08-10-2019
  •  | 
  •  

質問

多くの書いた後 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()

上記の関数が呼び出すことに注意してください afplay, 、私はMacで動作することを知っているので、置き換える必要があります play Linuxで。 Windowsでは、私にはわかりません。

あなたは上で何が起こっているのか知っています、私たちは最初に呼ばれる関数を作成します PlaySound それはに殻を出します afplay. 。次に、カーソルが挿入モードで移動するたびに発射されるオートコマンドをセットアップします。それが発射するとき、それは呼び出します PlaySound.

他のヒント

プラグインが存在します。ここで見つけることができます: https://github.com/osyo-manga/vim-sound

ただし、Sound Effectsファイルを自分で追加する必要があります。これはここで見つけることができます。http://www.soundjay.com/typewriter-sounds.html

Solarisを使用している場合は、この一連のスクリプトでカーネルキーボードドライバーをDTRACEすることができます。 http://www.brendangregg.com/dtrace/typewriter-0.75.tar.gz

試してみてください qweritckle

Linuxのタイプライターサウンドエミュレータです。

楽しいアイデア、そして答えてくれてありがとうトロッター。しかし、あなたの答えを使用して、私は自分のシステム(Ubuntu 14.04)で見つけました(Vimが各キープレスがメッセージで空白になったことがわかりました。

Enterまたは入力コマンドを押して続行します

コマンドを黙って実行するトピックに関する議論に基づいて、vimで https://vi.stackexchange.com/questions/1942/how-to-execute-shell-commands 私は試した:

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