关于quit-window 的 prefix argument问题

dired-mode或者helpful-mode中,q绑定的方法是quit-window,但是默认buffer只是bury,不会kill。C-u q可以kill buffer,怎么可以默认q 直接kill而不是bury呢?

重新绑定下按键试试?

(define-key help-mode-map (kbd “q”) 'kill-buffer-and-window)

可以实现。多谢啦

如果没有现成的,可以自己定义一个,比如:

(defun quit-window-and-kill-buffer ()
  (interactive)
  (quit-window 'kill))

(define-key special-mode-map [remap quit-window] #'quit-window-and-kill-buffer)

一般这样的 Major Mode 都会继承 special-mode-map

1 个赞

有两个问题:

  1. 文档上关于quit-window的参数,第一个参数kill如果non-nil就会kill buffer。我理解是不是要传t?这里的’kill是啥意思
  2. define-key这一行,#'是什么意思呢?
  1. 'kill和t都可以,我理解’kill是一个符号,也属于non-nil,是这样吧?

是,docstring 有写,还可以看源码。

'killt 提供更多信息量,可读性好点。

提示编译器 quit-window-and-kill-buffer 得有个函数定义。

可以不用管,用 'quit-window-and-kill-buffer 更常见。

谢谢啦大佬~

楼主的头像可以换一下吗,对我造成了精神污染

吓得我赶紧点开楼上头像看看:rofl:

吓得我在设置里找了半天黑名单功能