Saya sudah sering melihat pertanyaan ini. Tapi tidak ada balasan yang memperbaiki masalah saya: mode minor tetap ada di mode lain.
Sejauh ini, saya sudah mencoba:
(use-package stickyfunc-enhance
:config
;; (add-to-list 'semantic-default-submodes 'global-semantic-stickyfunc-mode)
;; (defun turn-on-semantic () (semantic-mode 1) (require 'stickyfunc-enhance))
;; (add-hook 'python-mode-hook 'turn-on-semantic)
(add-hook 'python-mode-hook
(lambda ()
(add-to-list 'semantic-default-submodes 'global-semantic-stickyfunc-mode)
(semantic-mode 1)
(require 'stickyfunc-enhance))))
Masalah saya dengan 2 pendekatan itu adalah bahwa semantic-mode
akan tetap ada di semua mode utama setelah saya mengunjungi buffer Python.
Bagaimana saya bisa mematikan semantic-mode
semua mode lainnya? Apakah saya harus mematikannya secara manual prog-mode-hook
?
Mencoba solusi kaushalmodi:
(use-package stickyfunc-enhance
:init
(add-to-list 'semantic-default-submodes 'global-semantic-stickyfunc-mode)
:config
(defun me/enable-semantic-maybe ()
"Maybe enable `semantic-mode'."
(if (derived-mode-p 'python-mode)
(lambda ()
(semantic-mode 1)
(require 'stickyfunc-enhance))
(semantic-mode -1)))
(add-hook 'change-major-mode-hook #'me/enable-semantic-maybe))
Menghasilkan saya:
Making python-shell-interpreter local to *Python Internal [792caf12c778150badeeede64c068cee]* while let-bound!
Making python-shell-interpreter-args local to *Python Internal [792caf12c778150badeeede64c068cee]* while let-bound!
sumber
prog-mode-hook
(jika itu bekerja). Namun, dapatkah Anda memberi tahu saya mengapa Anda menggunakan#
? Apakah byte-compiled berarti akan dihitung pada langkah pertama dari .elc?#'
(sharp-quote) di mana argumen simbol fungsi diharapkan. [Baca selengkapnya ](progn
bukannya di(lambda ()
sana untuk membungkus hal-hal yang harus terjadi jikaif
kondisinya benar. Juga saya akanrequire
stickyfunc-enhance
di awal:init
sebelum referensi Andaglobal-semantic-stickyfunc-mode
. Adapun kesalahan yang sebenarnya, saya akan memulai pertanyaan baru dengan tag + pertanyaan yang lebih terarah. Saya pikir meskipun masalahnya adalah Anda menggunakanlambda
bukanprogn
.