2008-11-27 18 views
10

Szukałem adaptacji emacetów Carbon do użytku na moim Macu, a jedyną przeszkodą, na jaką natknąłem się, jest denerwujący dźwięk przewijania przy próbie przewinięcia poza koniec dokumentu. Szukałem w Internecie, ale nie mogę znaleźć tego, co powinienem dodać do mojego .emacs, który przestanie wydawać dźwięki podczas przewijania. Nie chcę go całkowicie wyciszyć, tylko podczas przewijania. Jakieś pomysły?Dezaktywuj sygnał dźwiękowy Emacs z węglem

Odpowiedz

3

Będziesz musiał dostosować ring-bell-function.

Ta strona może dostarczyć wskazówek:

http://www.emacswiki.org/emacs/AlarmBell

+0

Niestety, to nie zadziała. Na przykład funkcja następnej linii ma zaprogramowany kod "ding". – ShreevatsaR

+0

Hmm. Czy nie mógłbyś po prostu przedefiniować funkcji następnej linii w swoich .emacs? – Svante

+0

Będziesz musiał przedefiniować nie tylko linię następną i poprzednią, ale także przewijanie w górę, przewijanie i wiele funkcji; wiele z nich jest zdefiniowanych w "kodzie źródłowym C" i których źródło nie jest dostarczane z emisjami dwutlenku węgla. Ktoś mnie poprawi, jeśli się mylę. – ShreevatsaR

8
(setq visible-bell t) 

To sprawia emacs migać zamiast sygnale.

+2

To prawda, ale to uciszy wszystko, czego PO chciał uniknąć. Tego właśnie używam - wizualny dzwonek jest tak samo pomocny jak słyszalny i nie przeszkadza w używaniu muzyki podczas korzystania ze słuchawek. W każdym razie poleciłbym go "nikomu". – jmanning2k

7

Korzystanie z podpowiedzi z Emacs wiki AlarmBell page, to robi to dla mnie:

(defun my-bell-function() 
    (unless (memq this-command 
     '(isearch-abort abort-recursive-edit exit-minibuffer 
       keyboard-quit mwheel-scroll down up next-line previous-line 
       backward-char forward-char)) 
    (ding))) 
(setq ring-bell-function 'my-bell-function) 

Jeśli nie znasz nazwy polecenia, naciśnij C-h k następnie klawisz/action chciałbyś uzyskać nazwę z.

0

Wydaje się to zrobić trick:

(setq ring-bell-function nil) 
+3

Korekta: 'nil' należy zastąpić przez' 'ignore'. Spowoduje to wyłączenie * wszystkich * dzwonków. –

3

Między odpowiedź Stephena Hassard i Kipton Barros' Komentarz:

(setq ring-bell-function 'ignore) 

wydaje się być najbardziej zwięzły, działa na Emacs 24.x oraz odpowiada na oryginalne pytanie.

Powiązane problemy