2012-06-26 7 views
8

バッファーにテキストを入力するときにタイプライター音を鳴らすようにemacsを設定します。また、Enterキーを押したときにキャリッジリターン音が鳴ります(WindowsのQ10エディターに似ています)。どのように私はこれについて行くかもしれないかについて誰にも示唆を持っていますか?私が使うことができるフックはありますか?emacsのタイプライター音

私は現在、aquamacsとemacs 22を使用していますが、アップグレードには反対しません。

EDIT:誰もが興味を持っている場合は、この質問のvimのバージョンがここに頼まれた:How can I make VIM play typewriter sound when I write a letter?

答えて

10

まずサウンド再生するいくつかの方法を確立する必要があります。

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

を...ありませんたとえば、Mac OSX Emacsで動作するようになっているのは、サウンドサポートが付いていないためです。そこ回避策は、しかしあるその後例えばhttp://www.emacswiki.org/emacs/ErcSound

  • を参照してください、あなたはまた、newline-and-indentに助言する可能性のあるのEmacsen

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

    上のアドバイスを使用することができます。 Emacs24で

  • あなたがpost-command-hookを使用して、そこthis-commandの名前を確認することができますdefadvice気に入らない場合、あなたは今post-self-insert-hook

    (add-hook 'post-self-insert-hook 'play-typewriter-sound) 
    
  • を持っている:

    (add-hook 'post-command-hook #'play-typewriter-sound-maybe) 
    
    (defun play-typewriter-sound-maybe() 
        (if (eq this-command 'self-insert-command) 
         (play-typewriter-sound))) 
    
+0

ありがとう、それは素晴らしい答えです。 Macでサウンドを再生する方法の1つは、 'start-process-shell-command'を使って' afplay'ユーティリティを呼び出すことでした。 –

+0

このユースケースでは、サウンドをサポートしているEmacsをコンパイルするのは価値があると思われます。次に、タイプライターのノイズを文字列形式( 'C-h C-i g(elisp)Sound Output'参照)で提供し、毎回ファイルシステムや外部プロセスにアクセスすることなくEmacsに再生させることができます。 – phils

1

誰か場合これを使用するには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")