2009-08-09 16 views
64

"Yanlış tip argüman: komut, (lambda nil (forward-line 5))" alıyorum.Bir lambda anahtarına bağlanırken "yanlış türde argüman: commandp" hatası

(global-set-key [?\M-n] (lambda() (forward-line 5))) 

Hata nedir? Oldukça eminim ki & basit bir şey eksik.

+0

Kapanış parantezini kaçırıyorsunuz. Muhtemelen kodunuzda değil, sadece soruda. – hsribei

+0

Bir yan not olarak: anonim işlevin böyle bir şekilde alıntılanması durumunda derlenmeyecektir. Yine de senin durumunda önemli bir şey olmadığını hayal ediyorum. –

cevap

96

global-set-key etkileşimli bir komut bekler. (lambda() (interactive) (forward-line 5)) çalışması gerekir.

Bu arada, C-h f commandp, böyle hatalar için oldukça iyi bir başlangıç ​​noktasıdır.

30

doğru formu bu olmalı -

(global-set-key (kbd "M-n") (lambda() (interactive) (forward-line 5))) 

sorun (Brendan belirtildiği gibi) (interactive) koymayı unutmuş olmasıydı.

Bu arada, anahtar bağlayıcısını belirtmek için (kbd) işlevini kullandığımı fark edeceksiniz. Bu işlev son derece kullanışlıdır, çünkü temel bağlamaları neredeyse tam anlamıyla koyabilirsiniz.

İlgili konular