我使用Emacs。但是,我不熟悉Lisp,虽然我知道一些函数式编程,因此我从未真正理解如何自定义init.el
。
基本上,我希望只有在R-mode
时才能启用工具栏模式和菜单栏模式。
我知道启用这些模式只需要:
(tool-bar-mode 1)
和(menu-bar-mode 1)
但如果我想在本地执行此操作,即仅在我R-mode
时才启用它们。
我应该在init.el
中添加什么?
答案 0 :(得分:3)
这个建议是可能的:
(defadvice select-window (after select-window-change-menubar activate)
(let ((yes-or-no
(if (memq major-mode '(r-mode lisp-interaction-mode))
1 -1)))
(menu-bar-mode yes-or-no)
(tool-bar-mode yes-or-no)))
我现在在列表中添加了两种模式,lisp-interaction-mode
就是
*scratch*
缓冲区的模式,以便测试是否容易
建议工作。
这是非常烦人的,但同时也很酷。我希望是的 你想要什么。
答案 1 :(得分:0)
我在这里描述的功能与您的要求非常接近,但并不完全匹配。如果你真正需要的是在你不需要的时候没有工具栏,那么他们可能会有所帮助。
图书馆Tool-Bar+提供了两种限制工具栏显示时间的可能性:
<强> tool-bar-here-mode
强>:
仅为特定帧启用工具栏。工具栏的存在与否是框架事物,而不是窗口或缓冲/模式事物。如果存在,工具栏的实际内容(其图标)特定于所选窗口及其缓冲区。但是,是否显示工具栏与框架有关。
使用命令tool-bar-here-mode
启用显示所选框架的工具栏。您可以将其添加到模式挂钩,以便在启用给定模式时,工具栏也是如此:
(add-hook 'info-mode (lambda () (tool-bar-here-mode 1)))
但是当相同的帧不再显示具有该模式的缓冲区时,这不会关闭模式。在这方面,它没有完全回答你的问题。
<强> tool-bar-popup-mode
强>:
隐藏工具栏,只需在菜单栏中输入 Buttons
条目即可。单击它时,弹出工具栏以执行单个工具栏操作。所以:
一个。点击Buttons
- 弹出工具栏。
湾单击工具栏图标以实现其操作 - 然后再次隐藏工具栏。
答案 2 :(得分:0)
对于工具栏,您可以将其绑定到其中一个鼠标按钮或按键序列。例如,在.emacs文件中尝试此操作:
(global-set-key [mouse-8] 'tool-bar-here-mode)
(tool-bar-pop-up-mode 1)
根据您的鼠标,您需要更改鼠标8&#39;反映您要绑定的鼠标按钮。 (提示,当Emacs有焦点时点击你想要的鼠标按钮,你会在底部看到一条消息,如:
未定义
或者,您可以绑定键盘上的键,例如:
(global-set-key (kbd "C-.") 'tool-bar-here-mode)
将它绑定到CTRL - 。