在一个孤独的emacs框架内,我经常在编辑70列文本文件(LaTeX)和120列程序(.h / .cpp文件)之间切换。我想继续使用一个emacs框架,而无需调整大小或创建其他框架。
这是问题所在。我的窗口宽度适合编辑120列程序,但在扩展文本编辑会话期间,70列出现在窗口的左侧。在一台笔记本电脑前的一天结束时,我的脖子似乎已经向左侧半永久性倾斜。
您是否了解使文本显示居中的方法,同时仍然使文本文件在右侧保持锯齿状?
答案 0 :(得分:6)
您可以尝试通过增加条纹尺寸来缩小框架。例如:
(set-fringe-style '(200 . 200))
将从主文本区域的每一侧削减200像素,使工作区域缩小400像素但仍然居中。要返回常规视图,
(set-fringe-style 'default)
会将边缘恢复到正常大小。
你可以把它包含在一些建议中,如果你坚持使用一个窗口,这可能对你很有用:
(defadvice switch-to-buffer (after switch-to-buffer-adjust-fringe activate)
"depending on major mode, switch fringe style"
(if (memq major-mode '(latex-mode))
(set-fringe-style '(200 . 200))
(set-fringe-style 'default)))
注意:更新列表(latex-mode)
以包含您希望拥有大条纹的任何模式。
答案 1 :(得分:0)
EmacsWiki在shrink-wrapping frames上有一个页面。您可以使用那里引用的库和代码根据需要自动缩小和增长Emacs框架。
答案 2 :(得分:0)
;; Add left and right margins, when file is markdown or text.
(defun center-window (window) ""
(let* ((current-extension (file-name-extension (or (buffer-file-name) "foo.unknown")))
(max-text-width 80)
(margin (max 0 (/ (- (window-width window) max-text-width) 2))))
(if (and (not (string= current-extension "md"))
(not (string= current-extension "txt")))
;; Do nothing if this isn't an .md or .txt file.
()
(set-window-margins window margin margin))))
;; Adjust margins of all windows.
(defun center-windows () ""
(walk-windows (lambda (window) (center-window window)) nil 1))
;; Listen to window changes.
(add-hook 'window-configuration-change-hook 'center-windows)
在上方,下方添加您的文件扩展名" md"和" txt"。