9

バッファにテキストを入力するときにタイプライターの音を鳴らし、Enter キーを押すと改行音を鳴らすように emacs を設定したいと思います (Windows の Q10 エディタと同様)。これについてどうすればよいかについて誰か提案がありますか? 使用できるフックはありますか?

私は現在、aquamacs と emacs 22 を使用していますが、アップグレードを嫌うわけではありません。

編集: 誰かが興味を持っている場合に備えて、この質問の vim バージョンがここで尋ねられました: How can I make VIM play typewriter sound when I write a letter?

4

2 に答える 2

11

まず、サウンドを再生する方法を確立する必要があります。

    (defun play-typewriter-sound ()
      (let ((data-directory "~/Dowloads/Sounds"))
        (play-sound `(sound :file "key1.wav"))))

...サウンドサポート付きでコンパイルされていないため、たとえばMac OSX Emacsでは機能しません。ただし、回避策があります。たとえば、http://www.emacswiki.org/emacs/ErcSoundを参照してください。

  • 次に、任意の Emacsen でアドバイスを使用できます

    (defadvice self-insert-command (after play-a-sound activate)
      (play-typewriter-sound))
    

    アドバイスすることもできますnewline-and-indent

  • Emacs24 では、あなたは今持っていますpost-self-insert-hook

    (add-hook 'post-self-insert-hook 'play-typewriter-sound)
    
  • 気に入らない場合は、次の名前をdefadvice使用して確認できます。post-command-hookthis-command

    (add-hook 'post-command-hook #'play-typewriter-sound-maybe)
    
    (defun play-typewriter-sound-maybe ()
      (if (eq this-command 'self-insert-command)
          (play-typewriter-sound)))
    
于 2012-06-26T18:53:12.437 に答える
2

誰かがこれを必要とする場合は、afplayここで私が使用するものを使用します

(defun play (audio-name)
    (interactive)
    (let* (buf (get-buffer-create "playnoise"))
        (start-process-shell-command 
         "play" buf (concat (format "afplay /Users/foo/audios/%s" audio-name) ".mp3"))))

(play "wrong")
于 2015-05-16T16:27:33.663 に答える