我使用 emacs 进行日常 javascript 编辑,在缓冲区之间切换我使用 Cx LEFT 和 Cx RIGHT 并且我对此很好(即使我发现很难知道我正在修改的文件的路径)。
我的问题:
在我总是拥有*scratch*
并*Messages*
打开的启动时,我认为放入(kill-buffer "*scratch*")
我的 .emacs 可以解决问题,但事实并非如此,您有什么建议吗?
当我打开文件时,我总是做 TAB 自动完成,所以每次我创建一个*Messages*
包含完成选项的新缓冲区时,我如何防止它创建,或者更好的是,我如何让 emacs 杀死它,在我完成之后做出我的选择?
如果您认为我正在做的事情与我在顶部所说的导航不“应该的方式”,请说出您的意见。
小智 29
这让我很生气......直到我修复它。
现在没有scratch、messages或completions缓冲区来干扰您的流程。享受!
把它放在你的 .emacs 中:
;; Makes *scratch* empty.
(setq initial-scratch-message "")
;; Removes *scratch* from buffer after the mode has been set.
(defun remove-scratch-buffer ()
(if (get-buffer "*scratch*")
(kill-buffer "*scratch*")))
(add-hook 'after-change-major-mode-hook 'remove-scratch-buffer)
;; Removes *messages* from the buffer.
(setq-default message-log-max nil)
(kill-buffer "*Messages*")
;; Removes *Completions* from buffer after you've opened a file.
(add-hook 'minibuffer-exit-hook
'(lambda ()
(let ((buffer "*Completions*"))
(and (get-buffer buffer)
(kill-buffer buffer)))))
;; Don't show *Buffer list* when opening multiple files at the same time.
(setq inhibit-startup-buffer-menu t)
;; Show only one active window when opening multiple files at the same time.
(add-hook 'window-setup-hook 'delete-other-windows)
Run Code Online (Sandbox Code Playgroud)
奖金:
;; No more typing the whole yes or no. Just y or n will do.
(fset 'yes-or-no-p 'y-or-n-p)
Run Code Online (Sandbox Code Playgroud)
嗯……这部分是 Emacs 的工作方式,但是您可以做一些事情来帮助一般切换。
首先,Emacs 必须至少有一个缓冲区。因此,即使您想摆脱*scratch*
and *Messages*
,您也会得到另一个您不想要的缓冲区(或者您会发现 Emacs 只是忽略了您的最后一个kill-buffer
请求,因为它正在重新创建该缓冲区( b/c 它需要一个缓冲区)。
因此,达到切换缓冲区更有意义的最佳方法是实际拥有要切换到的缓冲区。
而且,当您完成此操作后,您可以查看可用于切换缓冲区的所有选项/包 - 其中许多列在 Emacs Wiki 的SwitchingBuffers下。 ido
非常受欢迎,就像icicles
和 一样anything
。