如何令我的 Emacs 能如下图那般

求问

1 个赞

主题看不出来,居中应该是用的 olivetti

darkroomwriteroom 也都可以

olivetti-mode 可以做到。另外安利一个自己的 hack,自动在 org-mode buffer 开启或关闭开启 olivetti-mode。当窗口只有一个 buffer,或者窗口布局是上下形式的时候,开启 olivetti-mode,如果存在左右布局,就关闭。用了一段时间,感觉很舒服。

(use-package olivetti
  :diminish
  :bind ("<f8>" . olivetti-mode)
  :init
  (setq olivetti-body-width 0.618)
  (defun xs-toggle-olivetti-for-org ()
    "if current buffer is org and only one visible buffer
  enable olivetti mode"
    (if (and (eq (buffer-local-value 'major-mode (current-buffer)) 'org-mode)
	     (or (eq (length (window-list nil nil nil)) 1)
		 (window-at-side-p (frame-first-window) 'right))) ;; frame-first-window 的 mode 是 org-mode 并且没有右边 window
	(olivetti-mode 1)
      (olivetti-mode 0)
      (when (eq (buffer-local-value 'major-mode (current-buffer)) 'org-mode)
	(visual-line-mode 1))))
  (add-hook 'org-mode-hook #'xs-toggle-olivetti-for-org)
  (add-hook 'window-configuration-change-hook #'xs-toggle-olivetti-for-org))
6 个赞

writeroom 配置参考,窗口宽度设置为 absolute width 如果左右分割小于这个宽度那么就自动不启用了,因此也不需要啥 Hack

(use-package writeroom-mode
  :straight t
  :hook (after-init . global-writeroom-mode)
  :config
  (setq split-width-threshold 120

        writeroom-width 128
        writeroom-bottom-divider-width 0
        writeroom-fringes-outside-margins t
        writeroom-fullscreen-effect nil
        writeroom-major-modes '(text-mode prog-mode conf-mode special-mode Info-mode dired-mode)
        writeroom-major-modes-exceptions '(process-menu-mode proced-mode)
        writeroom-maximize-window nil
        writeroom-mode-line t
        writeroom-mode-line-toggle-position 'mode-line-format))
4 个赞

谢谢,我试一试,这个方案更灵活

更应该关注内容吧!

1 个赞

我的博客 gtdstudy.com 从春节放假以来一直在更新。

1 个赞

当然这张截图来自 zettelkastan.de 的发起者,他在 Twitter 上说,Emacs 的写作环境真棒