gpt4 book ai didi

emacs tabbar 自定义,使未保存的更改可见

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:34 25 4
gpt4 key购买 nike

我想在 emacs 的 tabbar 选项卡栏中标记具有未保存更改的缓冲区。我还想将 F1 - F12 分配给缓冲区,然后按相应的按钮打开它们。但是因为我没有 lisp 的编程实践,所以我不知道从哪里开始。我还觉得学习 lisp 以了解如何在低层配置 emacs 是一项非常有用的技能。

所以我的问题不是真正如何实现它,而是从哪里开始寻找。以及如何开始学习 Lisp。

谢谢

最佳答案

以下代码适用于 Emacs 和 tabbar.el 的标准版本——它在选项卡中修改后的缓冲区名称的开头创建 + 符号。

;; BUFFER MODIFICATION STATE INDICATOR
(defadvice tabbar-buffer-tab-label (after fixup_tab_label_space_and_flag activate)
(setq ad-return-value
(if (and (buffer-modified-p (tabbar-tab-value tab))
(buffer-file-name (tabbar-tab-value tab)))
(concat " + " (concat ad-return-value " "))
(concat " " (concat ad-return-value " ")))))
(defun ztl-modification-state-change ()
(tabbar-set-template tabbar-current-tabset nil)
(tabbar-display-update))
(defun ztl-on-buffer-modification ()
(set-buffer-modified-p t)
(ztl-modification-state-change))
(add-hook 'after-save-hook 'ztl-modification-state-change)
(add-hook 'first-change-hook 'ztl-on-buffer-modification)

如果您想更进一步,请查看 aquamacs-tabbar.el 的源代码——它包含可自定义的选项,例如 tabbar-unselected-modifiedtabbar-selected-modified。您可能需要为上述选项使用 Aquamacs,或者您需要对以下文件进行一些修改,以便它们可以与 Emacs 的标准版本一起使用:aquamacs-tabbar.eltabbar.eltabbar-window.el:

https://github.com/davidswelt/aquamacs-emacs/tree/master/aquamacs/src/site-lisp/tabbar


另请参阅此进一步自定义外观的可能性示例。

screenshot
(来源:lawlist.com)

关于emacs tabbar 自定义,使未保存的更改可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18511113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com