受VSCode启发的 mode line 构造,显示目前的python执行文件,鼠标悬浮显示完整路径,点击会打开python-shell-interpreter
customize 界面。
;;;; Mode line
;;
;; The mode line segment shows current python executable
;; hover text is the full path
;; clicking it opens the customize panel for `python-shell-interpreter'
(defvar moon-python-mode-line-map (let ((map (make-sparse-keymap)))
(define-key map (vector 'mode-line 'down-mouse-1)
(lambda ()
(interactive)
(customize-apropos "python-shell-interpreter")))
map))
(defun moon-python-exec-mode-line ()
"Return a mode line segment for python executable."
(propertize (file-name-base python-shell-interpreter)
'help-echo (executable-find python-shell-interpreter)
'keymap moon-python-mode-line-map))
(add-to-list 'mode-line-misc-info
'(:eval (if (eq major-mode 'python-mode)
(list " " (moon-python-exec-mode-line) " "))
""))
更新了一下,help-echo
现在用的是(executable-find python-shell-interpreter)
,这样即使python-shell-interpreter
不是完整路径,mode line 也能显示完整路径。