0

我想为除文本模式缓冲区之外的所有缓冲区启用“在窗口边缘换行”(对于后者,我已通过打开自动填充(add-hook 'text-mode-hook 'turn-on-auto-fill))。我无法做到这一点,最后逐步减少了我的 .emacs 文件的内容,以查看问题出在哪里。在我的设置下(见下文),我可以从一个空的 .emacs 开始,默认情况下获得(应该如此)如果一行被包裹,则在 Window Edge 处用小波浪线箭头包裹。一切都很好。现在我将单行添加(desktop-save-mode 1)到 .emacs。突然,默认切换到“自动换行(视觉线模式)”。如果我然后(手动)将其设置为“在窗口边缘换行”(通过选项-> 此缓冲区中的换行),我会获得正确的换行,但缺少小波浪线箭头。

怎么了?

我真的很想使用desktop-save-mode,但我不知道它对其他事物有如此广泛的影响。

这是我的设置:我使用 GNU Emacs 24.0.95.1 (x86_64-apple-darwin, NS apple-appkit-1038.36) [从 http:// 安装为 Emacs-pretest-24.0.91-universal-10.6.7.dmg emacsformacosx.com/builds] 在 Mac OS X 10.7.3 上。

4

1 回答 1

1

桌面库不仅从会话中恢复缓冲区,而且还设置了在该会话中处于活动状态的相同模式,以及一些变量。

因此,在您的 init 文件中所做的更改可能看起来没有生效,因为桌面文件中的更改前​​版本正在破坏它们。

详情见桌面库中的注释,以及手册:

  • M-x find-library RET desktop RET
  • M-: (info "(emacs) Saving Emacs Sessions") RET
  • M-: (info "(elisp) Desktop Save Mode") RET

对于单个文件缓冲区,简单地恢复/重新加载文件通常会解决问题。对于全局设置,更新设置并重新保存桌面文件通常就足够了。

从理论上讲,您应该能够使用以下方法将石板擦干净:
M-x desktop-clear RET

如果做不到这一点,请关闭 Emacs 并在重新启动之前删除.emacs.desktop.emacs.desktop.lock文件。

于 2012-04-11T21:46:45.793 回答