我希望能够对我的.emacs文件进行更改,而无需重新加载Emacs。
我发现有三个问题可以回答我的问题(你可以找到它们here,here和here),但问题是我刚刚做出的改变是一个切换,并且作为对这些问题的两个答案(a1,a2)的评论解释,那里给出的解决方案(例如Mx reload-file或Mx eval-buffer)不要不适用于切换。
我想有一种方法可以使用命令再次切换变量,但如果有办法重新加载整个.emacs并重新评估所有切换而不必指定它们,我更愿意。< / p>
在任何情况下,如果有人告诉我如何切换变量的值,我也会感激,如果我只是更改了一个切换,我可以用命令来做,而不是仅为此重新启动Emacs(我是新的Emacs)。我不知道这些信息有多么有用,但我应用的更改如下(我从this回答另一个问题):
(setq skeleton-pair t)
(setq skeleton-pair-on-word t)
(global-set-key (kbd "[") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "(") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "{") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "<") 'skeleton-pair-insert-maybe)
编辑:我在.emacs中包含了上述内容并重新加载了Emacs,以便更改生效。然后我评论了所有这些并尝试了M-x加载文件。这不起作用。下面的建议(PP的C-x C-e有效,如果我用它来第一次评估切换,但不是当我想要撤消它时)。如果存在这样的事情,我想要评估评论的东西......
谢谢:)
答案 0 :(得分:6)
您可能想尝试的一些事情:
M-x load-file
(然后在出现提示时,键入~/.emacs
输入)。 M-x表示按下元键(通常是Linux和Windows桌面上的Esc
),然后按普通的x
字符键。
或者,当您的.emacs
文件处于打开状态时,请在您要执行的功能的紧密括号后面放置提示,然后键入Ctrl-X
,Ctrl-E
。这将执行包含在光标左侧最近的括号内的块。
这是我经常用于复杂搜索和替换的最后一种技术。假设我正在编辑一个XML文件,我想在之前将关闭标记移动到该行:我将键入我当前的XML缓冲区(query-replace-regexp "[ \r\n\t]*</" "</")
,然后将光标放在右括号后面,并键入{{1} },Ctrl-X
。
答案 1 :(得分:4)
我认为你想尝试打开/关闭骨架对吗?
我很想通过:
来做到这一点(setq skeleton-pair t) ; turns skeleton-pair on
(setq skeleton-pair nil) ; turns skeleton-pair off
在.emacs中,按下我想要尝试的特定版本的右括号旁边的C-x C-e。当然,我必须记住确保.emacs只有我想要的最终设置,所以下次启动时它会做正确的事。
答案 2 :(得分:4)
我在.emacs中包含了上面的内容并重新加载了Emacs,以便更改生效。然后我评论了所有这些并尝试了M-x加载文件。这不起作用。
它不起作用,因为当你启动Emacs时,你设置了一些变量和键。使用这些命令重新加载.emacs
不撤消它们。您必须手动覆盖设置以使用
(setq variable-name nil)
和
M-x global-unset-key
输入后跟您要取消设置的键。
答案 3 :(得分:4)
您始终可以使用* scratch *缓冲区来计算表达式。
如果您想设置变量:
(setq skeleton-pair t)^ J
取消设置:
(setq skeleton-pair nil)^ J
你必须使用ctrl-J来调用评估; return(或ctrl-M)不起作用。
这适用于所有lisp表达式,BTW。如果你有一个快速的计算:
(+ 51 33)^ J 84
或者,如果您想要找到框架的宽度: (帧宽度)道^ J 80
如果您正在修补或要求评估非交互式命令或变量,这将非常有用。
答案 4 :(得分:2)
不确定我是否理解你的问题(有点累),但是如何标记你已经改变了什么(C-spc)然后M-x eval-region?除非我做了一些重要的事情,否则这就是我通常需要做的事情。
答案 5 :(得分:0)
每次评估elisp代码时,都会转到此emacs会话的全局emacs环境;因此,如果设置变量值,即使重新加载.emacs,它仍然存在于环境中。
如果我们可以在“沙盒”中预加载.emacs(或任何lisp)来测试它,那将是很好的。 当我进行大量的.emacs自定义时,我通常打开一个emacs来编辑.emacs,另一个用来评估(我可以重新启动以避免破坏环境)。