2012-11-20 7 views
5

Yani, bir anahtarı varsayılandan farklı bir komutla eşleştirmeyi denedim, ancak istenen etkiyi alamıyorum.Emacs anahtarını yeniden kazandığında istenmeyen davranış

(global-set-key (kbd "<left>") (message "Use C-f!")) 

Gördüğünüz gibi, konu "C-f kullan" mesajını görüntülemektir. Sol ok tuşuna basıldığında yankı alanında. Ancak, bu ne yaparsa ben düzenliyorum geçerli arabelleğe mesaj çıktı.

Neyi eksik?

Selamlar,

David Lind

cevap

3

Sen komuta anahtarı bağlamak gerekir:

(global-set-key (kbd "<left>") (lambda() (interactive) (message "Use C-f!"))) 
+0

efendim ederiz! Yani anahtarın bir işleve bağlı olması gerekiyor mu? Bunu böyle yorumluyorum, çünkü benim versiyonumdan farklı olan tek şey ve sizin komutunuzun bir lambda fonksiyonu olarak tanımlanmasıdır. – davidl

+0

Sadece bir işlev değil, etkileşimli bir işlev. –

+0

Ama neden bir lambda olmak zorunda? Ben aynı şeyi şimdi haskell-mode girdikten sonra bir dosya yüklemek için yaptım .. '(add-hook 'haskell-mode-hook (lambda() (load-file" ~/yada.el ")))' .. Lambda tanımı olmadan denemek hataları oluşturur, yük dosya kendi başına bir işlev olarak değil mi? Çünkü '(add-hook 'haskell-mode-hook' yükleme dosyası '~/yada.el')' başarısız. Belki bu başka bir gönderinin konusu mu? :) – davidl