Windows上的GNU Emacs:无法应用init文件更改并键入波形符号

时间:2011-08-24 08:01:50

标签: windows emacs

问题1

我正在尝试使用init文件自定义我的Emacs。

我找到了我的init文件的正确位置,并尝试在其中编写一些代码来更改Emacs行为。

按照文档示例,我编写了以下代码行

(setq fill-column 20)

然后保存文件。但是当我启动Emacs时,fill-column变量仍默认设置为70。如果我动态修改该变量,Emacs会正常接受新值。

我想知道我是否遗漏了关于init文件的内容。我应该明确告诉Emacs加载吗?我是否应该包含其他代码语句以使其应用更改?

问题2

要在Emacs中引用您的HOME目录,您必须在路径的开头使用波形符号,例如,当您想通过Emacs找到您的初始化文件位置时,就像这样

~/.emacs.d/init.el

但如果我的键盘上没有这样的字符并且ALT代码不起作用(因为ALT后跟数字被视为命令输入),如何输入这样的字符呢?

2 个答案:

答案 0 :(得分:2)

(1)您的init文件是否实际执行过?以下是您如何找到:在语法上将错误的东西放入其中。如果emacs在启动时抱怨,它正在执行文件 - 否则问题是你和emacs不同意主目录的位置。

(2)我知道的每个Windows键盘布局都有〜的绑定 - 它可能在AltGr组合,死键等上,但它总是在那里。 Windows系统控制面板可以帮助您验证和选择您的keyoard布局。但如果你真的没有〜的绑定,你可以随时输入

<C-q> 1 7 6 / . e m a c s 
在emacs中改为

(176是偶数为126,ASCII代码为〜)。

答案 1 :(得分:1)

正如fill-column的文档明确指出的那样,它通常是缓冲区本地的,即在创建新缓冲区时它被设置为特定于缓冲区的值。您正在设置执行.emacs时处于活动状态的缓冲区的填充列,但这是一个临时缓冲区,在您进行检查之前不再存在。

要实现你想要的(我认为),你可以使用(setq-default fill-column 20) ......虽然我会在一般情况下反对这一点。 (可能你只想为一组特定的模式设置非常窄的定义;你可以使用相应的模式钩子或使用建议工具为这些缓冲区设置这个变量。)

你的其他问题已经得到了解答,所以我会忽略这一点。请不要在同一个帖子中发布多个问题。