2014-10-28 86 views
0

我觉得愚蠢张贴这一点,但我真的不知道为什么这个功能不会编译:elisp的:简单的功能分割窗口,将光标移动到新窗口

(defun dc/split-window-below-and-move-cursor() 
    (interactive) 
    (split-window-below) 
    (other-window 1)) 

我俯瞰东西超级明显?

这里的错误消息:

Symbol's function definition is void: split-window-below 

更新:所以,我想它在另一个文件(在一个新的Emacs会话),它工作得很好。 (拿出progn并把(interactive)也没有解决它 - 我已经更新了上面的代码以反映这个改变。)

更新2:好的,这是愚蠢的。以下代码工作正常,但我仍然无法获得defun以上代码的工作。如果任何人有想法,仍然会很好奇理解是什么导致了这种行为。

(global-set-key (kbd "s--") (lambda() (interactive) (split-window-below) (other-window 1))) 
+0

对于未来的问题:Emacs有stackexchange网络在其自己的网站现在(http://emacs.stackexchange.com/) – Matthias 2014-10-28 08:13:19

回答

1

无需progn,但你需要interactive

(defun dc/split-window-below-and-move-cursor() 
    (interactive) 
    (split-window-below) 
    (other-window 1)) 
+0

不幸的是,没有骰子。 lambda版本 - 这是我最初在我的'init'文件中 - 正常工作。但是转移到显式函数的原因是出于文档目的(即,现在,当我调用help/describe-key命令时,我看到一个丑陋的lambda表达式代替定义)。 – iceman 2014-10-28 08:34:03

+0

'(global-set-key(kbd“s--”)'dc/split-window-below-and-move-cursor)'适合我 – 2014-10-28 08:41:47

+0

呃...我的emacs刚刚完全炸毁。 (窗户随机关闭等等;它在我通过'emacs -q'运行后继续运行).emacs 24的安装似乎破坏了东西。无论如何谢谢你的努力。 – iceman 2014-10-28 09:02:45