当.emacs修改之后

When you add Emacs Lisp code to your init file, it is not evaluated until you restart Emacs. Rather than restarting Emacs, you can use ‘M-x eval-bufferto evaluate everything, or ‘M-x eval-regionto evaluate a part you select, or just ‘C-x C-e’ (command ‘eval-last-sexp’) to evaluate the Emacs Lisp expression immediately before your cursor. See EvaluatingExpressions.

参考链接

这里要讨论是 重启真的和执行M-x eval-buffer一样吗?
。。。

答案是不一样的,比如注销掉原来某个设置,执行M-x eval-buffer命令,但原来的设置还在内存中,设置还是有效的。

但重启emacs原来的设置就是无效的。

还有一种情况,比如在.emacs中有下面设置:

(add-hook 'verilog-mode-hook
    (lambda () (add-to-list 'write-file-functions 'delete-trailing-whitespace)))

这是对verilog文件的操作,如果一个verilog文件打开一直打开着。
添加设置之后,执行M-x eval-buffer命令,再在这个verilog文件中做修改,发现设置没有起效果。
正确做法是必须要将这个verilog文件先kill掉,再重新打开,因为在打开文件时会挂载verilog-mode-hook。

——————————
为了保险起见,关掉emacs,重新打开吧

你可能感兴趣的:(emacs)