ztlevi
1
使用dired或者treemacs打开html, js文件是能显示header-line的,但是用ranger或deer打开就不行了,我试了ranger-mode-load-hook也将ranger-modify-header
设为nil了也不行。
Dired:
Ranger:
这是我使用的配置。
(defun set-header-line ()
(setq header-line-format
'((which-func-mode ("" which-func-format " ")))))
(add-hook 'prog-mode-hook 'set-header-line)
(add-hook 'text-mode-hook 'set-header-line)
(add-hook 'web-mode-hook 'set-header-line)
(add-hook 'js2-mode-hook 'set-header-line)
ztlevi
2
解决了,坑爹的在js2-mode config里面重复写了一遍(which-function-mode t)
yyjjl
4
lambda 后面少了括号,set-header-line被当成参数
yyjjl
6
我的意思是(lambda () (set-header-line))
LdBeth
8
(add-hook 'prog-mode-hook #'set-header-line)
ztlevi
9
我也试过了,不行诶。
我测试了下,(add-hook 'web-mode-hook (lambda () (message "test web hook")))
是有message的,所以是生效了的,但是header-line-format没有,应该是被覆盖了。。
BTW,如果我在web-mode里手动调用set-header-line
是可以生效的
ztlevi
10
web-mode-hook的值是
(my-web-mode-indent-setup spacemacs//typescript-web-mode-enable-tide
my-setup-develop-environment spacemacs//typescript-web-mode-enable-flycheck
turn-on-evil-matchit-mode emmet-mode spacemacs//typescript-web-mode-enable-eldoc
drupal-mode-bootstrap set-header-line flycheck-mode spacemacs//init-company-web-mode
company-mode spacemacs//init-company-vars-web-mode)
ztlevi
12
set-default 的话minibuffer里也生效了,不想在minibuffer里生效诶。。
可能是这些的锅,你写在user-config
里了没?是的话应该是在最后的,怎么在他俩前面
既然怀疑 header-line-format
被覆盖,那么它最终的值是多少?
ztlevi
15
这个我之前试过了,放在user-config最后面,和我自己定义的layer里面都试过了,都不行。
ztlevi
16
这个是在js2-mode下的情况,是nil。 感觉可能跟buffer-local有关系
header-line-format is a variable defined in ‘C source code’.
Its value is nil
Local in buffer renderer.js; global value is the same.
Automatically becomes buffer-local when set.
This variable may be risky if used as a file-local variable.
ztlevi
17
我发现问题是ranger…使用dired或者treemacs打开html, js文件是能显示header-line的,我试了ranger-mode-load-hook
,也不行。
不知道大家有什么见解没?
ztlevi
18
很奇怪,ranger里面定义了revert-apperance的函数,不知道为什么对继承fundamental-mode的不适用。
(defun ranger-revert-appearance (buffer)
"Revert the `BUFFER' to pre-ranger defaults without closing ranger session."
(when (buffer-live-p buffer)
(with-current-buffer buffer
;; revert buffer local modes used in ranger
(ranger--message "Reverting appearance to buffer : %s" buffer)
;; BUG : dired auto revert adds header / . / .. when window not active
(unless ranger-pre-hl-mode
(hl-line-mode -1))
(unless ranger-pre-arev-mode
(auto-revert-mode -1))
(setq header-line-format ranger-pre-header-format)
(when (derived-mode-p 'dired-mode)
(setq dired-listing-switches ranger-pre-dired-listing)
(ranger-show-details)
;; (ranger-show-details)
;; revert ranger-mode
;; (setq ranger-mode nil)
;; hide details line at top
(funcall 'remove-from-invisibility-spec 'dired-hide-details-information)
;; sort dired with previous listing options
(dired-sort-other dired-listing-switches)
))))