关于quit-window 的 prefix argument问题


#1

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


#2

重新绑定下按键试试?

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


#3

可以实现。多谢啦


#4

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

(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


#5

有两个问题:

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

#6
  1. 'kill和t都可以,我理解’kill是一个符号,也属于non-nil,是这样吧?

#7

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

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


#8

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

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


#9

谢谢啦大佬~


#10

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


#11

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


#12

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