当函数作为交互式命令运行并作为eval-expression

时间:2016-11-29 03:23:51

标签: emacs command

我有一个elisp函数来更改暂存缓冲区的default-directory

(defun sd/test ()
  (interactive)
  (print (current-buffer))
  (setq default-directory "~/"))

我将此代码放在暂存缓冲区中,其默认目录为~/temp,我尝试使用此函数将其更改为~/

奇怪的是,当我从M-x调用它时,此功能不起作用。 defaut目录没有改变。 但是,当我从M-:eval-expression调用它时,它可以正常工作。 default-directory已更改。

那么为什么第一种调用函数的方法不会生效?

1 个答案:

答案 0 :(得分:0)

我发现问题是我将M-x映射到counsel-M-x,这是一个三十方的包。这是律师包的问题。 删除律师包后,M-x现在与M-:

相同