   :init
   (add-hook 'after-init-hook 'which-key-mode)
   :config
-  (setq which-key-idle-delay 0))
+  (setq which-key-idle-delay 0)
+  (which-key-add-major-mode-key-based-replacements 'java-mode
+    "C-c C-c" "compile"
+    "C-c C-r" "refactor"
+    "C-c C-v" "project")
+  (which-key-add-major-mode-key-based-replacements 'emacs-lisp-mode
+    "C-c C-r" "refactor"))
 
 (use-package popup-edit-menu
   :ensure t

                      "<f9> t"    'litable-mode
                      "M-&"       'complete-symbol
                      "C-c e"     'macrostep-expand
                      "C-c C-r"   '(:ignore t :which-key "refactor")
                      "C-c C-r v" '(:ignore t :which-key "erefactor")
                      "C-c C-r e" 'emr-show-refactor-menu)
  (general-define-key :keymaps 'racket-mode-map

  (general-define-key :keymaps 'undo-tree-map
                      "M-_" 'nil)
  (general-define-key :keymaps 'java-mode-map
                      "<f9> m" 'meghanada-mode
                      "<f9> j" 'jdee-mode)
  (general-define-key :keymaps 'popup-isearch-keymap
                      "C-'" 'popup-isearch-cancel)
  (general-define-key :keymaps 'sql-mode-map
